您的位置:首页 > 编程语言 > Java开发

java对象和json数据转换实现方式3-使用jackson实现

2016-01-21 15:50 926 查看
[java] view
plaincopy

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);

}

}

输出如下:

[html] view
plaincopy

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"}]

相关实体类:

[java] view
plaincopy

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: