測试代码:

package com.yanek.util.json;

import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List; import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonUtil { /**
* @param args
*/
public static void main(String[] args) { Hotel h1=new Hotel();
h1.setId(1);
h1.setName("name1"); Hotel h2=new Hotel();
h2.setId(2);
h2.setName("name2"); RoomTypeVO t1=new RoomTypeVO();
t1.setPrice("20");
t1.setTypeid(1);
t1.setTypename("nnn1"); List<RoomTypeVO> RoomTypeVOs=new ArrayList<RoomTypeVO>();
RoomTypeVOs.add(t1);
RoomTypeVOs.add(t1);
h1.setRoomTypeVOs(RoomTypeVOs); Hotel hotel=new Hotel(); try {
System.out.println("json1:::"+bean2Json(h1)); String s=bean2Json(h1);
hotel=json2Bean(s,Hotel.class); System.out.println("json2:::"+bean2Json(hotel)); System.out.println("json3:::"+bean2Json(RoomTypeVOs)); String s2=bean2Json(RoomTypeVOs);
List<RoomTypeVO> RoomTypeVOs2=new ArrayList<RoomTypeVO>();
RoomTypeVOs2=json2Bean(s2,List.class); System.out.println("json4:::"+bean2Json(RoomTypeVOs2)); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public static String bean2Json(Object obj) throws IOException {
ObjectMapper mapper = new ObjectMapper();
StringWriter sw = new StringWriter();
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
mapper.writeValue(gen, obj);
gen.close();
return sw.toString();
} public static <T> T json2Bean(String jsonStr, Class<T> objClass)
throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(jsonStr, objClass);
} }

输出例如以下:

json1:::{"id":1,"name":"name1","roomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]}
json2:::{"id":1,"name":"name1","roomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]}
json3:::[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]
json4:::[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]

相关实体类:

package com.yanek.util.json;

import java.util.List;

public class Hotel {

	public List<RoomTypeVO> getRoomTypeVOs() {
return RoomTypeVOs;
}
public void setRoomTypeVOs(List<RoomTypeVO> roomTypeVOs) {
RoomTypeVOs = roomTypeVOs;
}
private List<RoomTypeVO> RoomTypeVOs; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private int id;
private String name; } package com.yanek.util.json; public class RoomTypeVO { public int getTypeid() {
return typeid;
}
public void setTypeid(int typeid) {
this.typeid = typeid;
} public String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename;
} public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
private int typeid;
private String typename;
private String price; }

java对象和json数据转换实现方式3-使用jackson实现的更多相关文章

  1. java对象和json数据转换实现方式1-使用json-lib实现

    測试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import net.sf. ...

  2. json相关类库,java对象与json相互转换

    有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...

  3. FastJson、Jackson、Gson进行Java对象转换Json细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  4. jackson java对象和json对象的互相转换

    概述 Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”. Jackson框架包含了3个核心库:streaming,databind,annotation ...

  5. FastJson、Jackson、Gson进行Java对象转换Json的细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  6. 使用Jackson来实现Java对象与JSON的相互转换的教程

    一.入门Jackson中有个ObjectMapper类很是实用,用于Java对象与JSON的互换.1.JAVA对象转JSON[JSON序列化] 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  7. FastJSON将Java对象转为json,日期显示时间戳未格式化解决办法

    JSON版本:FastJson Java 对象转换为 JSON 格式 定义以下 Person JavaBean: public class Person { @JSONField(name = &qu ...

  8. java对象与json串互转

    1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSO ...

  9. java对象与json对象间的相互转换

    工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...

随机推荐

  1. 在spring+springMvc+mabatis框架下集成swagger

    我是在ssm框架下集成swagger的,具体的ssm搭建可以看这篇博文: Intellij Idea下搭建基于Spring+SpringMvc+MyBatis的WebApi接口架构 本项目的GitHu ...

  2. Python --标准库 存储对象 (pickle包,cPickle包)

    在之前对Python对象的介绍中 (面向对象的基本概念,面向对象的进一步拓展),我提到过Python“一切皆对象”的哲学,在Python中,无论是变量还是函数,都是一个对象.当Python运行时,对象 ...

  3. 摘:"error LNK2019: 无法解析的外部符号 该符号在函数 中被引用" 错误原因

    例如“error LNK2019: 无法解析的外部符号error LNK2001: 无法解析的外部符号“private: static struct _OVERLAPPED CUsbCom::g_Wr ...

  4. s:if 标签用法总结和举例

    http://www.360doc.com/content/11/1108/18/6161903_162838014.shtml

  5. UE初写小项目问题之命令行报错:Expected indentation of 4 spaces but found 6

    一.问题 刚开始用一个小项目练手,用vue-cli初始化项目,直接安装了所有的东西,如vue-router.ESLint.unit tests等等,当时只懂得vue-router是什么. 问题来了,在 ...

  6. unity, editorWindow update计时

    对于editorWindow,Time.deltaTime不起作用,所以需用下面方法对update进行计时: public class myEditorWindow : EditorWindow{ p ...

  7. Animation.Sample用法介绍

    无意中翻到这篇问答LINK,发现了Sample的用法 如果想让Animation在编辑器状态下预览,也可以用这个接口 当你想要直接获得动画的运行结果,而不是等帧数执行到这,这时候就得调用Sample: ...

  8. Atitit. Gui控件and面板----程序快速启动区--最佳实践Launchy ObjectDock-o0g

    Atitit.  Gui控件and面板----程序快速启动区--最佳实践Launchy ObjectDock-o0g 两个方式::: 键盘式::先用热键呼叫出QS,然后开始输入程序中的部分字母,按En ...

  9. [svc]influxdb+grafana实战-各省份api访问成功率统计

    简单说下需求: 统计各个省份的 3大运营商的接口访问成功率,绘图展示 数据格式 {"mobile" : "15812345608", "provinc ...

  10. 每日英语:China's Bad Earth

    In Dapu, a rain-drenched rural outpost in the heart of China's grain basket, a farmer grows crops th ...