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