json与Java对象 转换的几种方法
来源:互联网 发布:易玩网络 编辑:程序博客网 时间:2024/04/28 06:00
package com.yoyohr.bi.bean;import com.fasterxml.jackson.core.JsonGenerationException;import com.fasterxml.jackson.core.JsonParseException;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.IOException;import java.util.ArrayList;import java.util.List;import static mondrian.server.MondrianServerRegistry.logger;/** * Created by Administrator on 2017/2/18. */public class Test { private static String jsonUser ="{\"id\":1,\"name\":\"kexianqin\"}"; private static String jsonUserArray ="[{\"id\":1,\"name\":\"kexianqin\"},{\"id\":2,\"name\":\"liuchen\"}]"; private final static ObjectMapper objectMapper = new ObjectMapper(); private static final Logger logger = LoggerFactory.getLogger(Test.class); public static void main(String[] args) throws IOException { logger.info("Test begin........"); /** 使用JavaType方法 */// JavaType javaType = objectMapper.getTypeFactory().constructCollectionType(ArrayList.class,UserT.class);// List<UserT> userList = objectMapper.readValue(jsonUserArray,javaType);// System.out.println(userList); /** TypeReference:可以把json字符串转换成想要的List. 注意readValue()方法里的new TypeReference<List<UserT>>() { }写法很关键,写成List.class是不行的, */// List<UserT> userlist = objectMapper.readValue(jsonUserArray,new TypeReference<List<UserT>>(){});// 若无toString方法:[com.yoyohr.bi.bean.UserT@58651fd0, com.yoyohr.bi.bean.UserT@4520ebad]// List userlist2 = objectMapper.readValue(jsonUserArray,new TypeReference<List>() { });// [{id=1, name=kexianqin}, {id=2, name=liuchen}]// System.out.println(userlist);// System.out.println(userlist2); /** 最普通的 */// UserT user=objectMapper.readValue(jsonUser,UserT.class);//json转化为UserT类对象// System.out.print(user.toString());// String jsonString=objectMapper.writeValueAsString(user);//对象转化为json// System.out.println(jsonString); /** 类中含类,如cube中包含多个dimension,:{"users":[{"id":3,"name":"kxq"},{"id":4,"name":"lc"}],"dname":"体育经济Q1241"} */// UserT user1 = new UserT();// user1.setId(3);// user1.setName("kxq");//// UserT user2 = new UserT();// user2.setId(4);// user2.setName("lc");//// Department class1=new Department();// class1.setDname("体育经济Q1241");// List<UserT> listUser=new ArrayList();// listUser.add(user1); listUser.add(user2);// class1.setUsers(listUser);//// String jsonString = objectMapper.writeValueAsString(class1);// System.out.println(jsonString); /** * 调用下面的方法<即最终方法> */ System.out.println(decode(jsonUser,UserT.class)); System.out.println(decode(jsonUserArray,new TypeReference<List<UserT>>(){}));//!!!!!!!!!!!!!{ }是干什么用的?? <T>与<?> } /** * 将对象序列化 * @param obj * @return */ public static String encode(Object obj) { try { return objectMapper.writeValueAsString(obj); } catch (JsonGenerationException e) { logger.error("encode(Object)", e); //$NON-NLS-1$ } catch (JsonMappingException e) { logger.error("encode(Object)", e); //$NON-NLS-1$ } catch (IOException e) { logger.error("encode(Object)", e); //$NON-NLS-1$ } return null; } /** * 将json string反序列化成对象 * * @param json * @param valueType * @return */ public static <T> T decode(String json, Class<T> valueType ) { try { return objectMapper.readValue(json, valueType); } catch (JsonParseException e) { logger.error("decode(String, Department<T>)", e); } catch (JsonMappingException e) { logger.error("decode(String, Department<T>)", e); } catch (IOException e) { logger.error("decode(String, Department<T>)", e); } return null; } /** * 将json array反序列化为对象 * * @param json * @param jsonTypeReference * @return */ public static <T> T decode(String json, TypeReference<T> jsonTypeReference) { try { return (T) objectMapper.readValue(json, jsonTypeReference); } catch (JsonParseException e) { logger.error("decode(String, JsonTypeReference<T>)", e); } catch (JsonMappingException e) { logger.error("decode(String, JsonTypeReference<T>)", e); } catch (IOException e) { logger.error("decode(String, JsonTypeReference<T>)", e); } return null; }}
1 0
- json与Java对象 转换的几种方法
- JavaScript中json字符串转换为json对象的几种方法
- json对象与字符串的转换方法
- JSON 转换成Java对象的方法
- JSON 转换成Java对象的方法
- json与java对象相互转换的两种方法(一)
- json与java对象相互转换的两种方法(二)
- JSON 与JAVA对象之间的转换
- JSON与java对象的相互转换
- JSON 字符串 与 java 对象的转换
- JSON 字符串 与 java 对象的转换
- JSON 字符串 与 java 对象的转换
- JSON 与JAVA对象之间的转换
- JSON 字符串 与 java 对象的转换
- JSON 字符串 与 java 对象的转换
- JSON 字符串 与 java 对象的转换
- JSON 字符串 与 java 对象的转换
- JSON 字符串 与 java 对象的转换
- Java笔记-Comparable 和 Comparator比较
- code first EF mvc 使用
- 视频播放器(VideoView)
- Android Studio 优秀插件汇总
- 工作记录 from beginning
- json与Java对象 转换的几种方法
- Servlet的生命周期,及init,service,destroy方法
- javascript【函数】闭包
- :after伪类的用法,checkbox,radio,content
- 【C语言简单说】十九:二维数组循环嵌套(1)
- C语言函数指针定义
- 微信小程序开发 不在以下合法域名列表中请参考文档 解决方法
- Android部分
- POJ 3476 A Game with Colored Balls 可能会