json与java格式的相互转换

1: FastJson

maven配置:

    <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.13</version>
</dependency>

util:

package com.dw.study.util;

/**
* @Author dw
* @ClassName FastJsonUtil
* @Description
* @Date 2020/5/7 22:48
* @Version 1.0
*/ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature; import java.util.List;
import java.util.Map; /**
* fastjson工具类
* @version:1.0.0
*/
public class FastJsonUtil { private static final SerializeConfig config; static {
config = new SerializeConfig();
config.put(java.util.Date.class, new JSONLibDataFormatSerializer()); // 使用和json-lib兼容的日期输出格式
config.put(java.sql.Date.class, new JSONLibDataFormatSerializer()); // 使用和json-lib兼容的日期输出格式
} private static final SerializerFeature[] features = {
// 输出空置字段
SerializerFeature.WriteMapNullValue,
// list字段如果为null,输出为[],而不是null
SerializerFeature.WriteNullListAsEmpty,
// 数值字段如果为null,输出为0,而不是null
SerializerFeature.WriteNullNumberAsZero,
// Boolean字段如果为null,输出为false,而不是null
SerializerFeature.WriteNullBooleanAsFalse,
// 字符类型字段如果为null,输出为"",而不是null
SerializerFeature.WriteNullStringAsEmpty
}; /**
* 将对象转为json字符串
*
* @param object
* @return
*/
public static String objectToJsonByFeatures(Object object) {
return JSON.toJSONString(object, config, features);
} /**
* 将对象转为json字符串
*
* @param object
* @return
*/
public static String objectToJson(Object object) {
return JSON.toJSONString(object, config);
} /**
* 功能描述:把JSON数据转换成指定的java对象
*
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return 指定的java对象
*/
public static <T> T jsonToBean(String jsonData, Class<T> clazz) {
return JSON.parseObject(jsonData, clazz);
} /**
* 功能描述:把JSON数据转换成指定的java对象列表
*
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return List<T>
*/
public static <T> List<T> jsonToList(String jsonData, Class<T> clazz) {
return JSON.parseArray(jsonData, clazz);
} /**
* List<T> 转 json
*/
public static <T> String listToJson(List<T> ts) {
String jsons = JSON.toJSONString(ts);
return jsons;
} /**
* 将json转为Map
*
* @param json
* @param <T>
* @return
*/
@SuppressWarnings("unchecked")
public static <T> Map<String, T> toMap(String json) {
return (Map<String, T>) JSONObject.parseObject(json);
} /**
* 功能描述:把JSON数据转换成较为复杂的List<Map<String, Object>>
*
* @param jsonData JSON数据
* @return List<Map < String, Object>>
*/
public static List<Map<String, Object>> jsonToListMap(String jsonData) {
return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
});
} }

 2、Jackson

ObjectMapper的使用:

  <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.3</version>
</dependency>

Util:

/**
* @Author dw
* @ClassName JsonConvertUtil
* @Description
* @Date 2020/4/22 16:57
* @Version 1.0
*/
public class JsonConvertUtil { public static ObjectMapper mapper = new ObjectMapper(); static {
// 转换为格式化的json
mapper.enable(SerializationFeature.INDENT_OUTPUT); // 如果json中有新增的字段并且是实体类类中不存在的,不报错
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
} /**
* @return
* @Author dw
* @Description 对象转为String
* @Date 2020/4/22 17:02
* @Param
*/
public String ObjectToString(Object object) throws JsonProcessingException {
return mapper.writeValueAsString(object);
} /**
* @return
* @Author dw
* @Description 对象转byte数组
* @Date 2020/4/22 17:03
* @Param
*/
public byte[] ObjectToByte(Object object) throws JsonProcessingException {
return mapper.writeValueAsBytes(object);
} /**
* @return
* @Author dw
* @Description 对象写入到文件中
* @Date 2020/4/22 17:04
* @Param
*/
public void ObjectToFile(String filePath, Object object) throws IOException {
mapper.writeValue(new File(filePath), object);
// mapper.writeValue(System.out, object); //写到控制台
} /**
* @return
* @Author dw
* @Description 读取 Json String 到对象中
* @Date 2020/4/22 17:07
* @Param
*/
public <T> Object JsonStringToObject(String str, Class<T> tClass) throws JsonProcessingException {
return mapper.readValue(str, tClass);
} /**
* @return
* @Author dw
* @Description Json Byte数组转为对象
* @Date 2020/4/22 17:10
* @Param
*/
public <T> Object byteArrToObject(byte[] byteArr, Class<T> tClass) throws IOException {
return mapper.readValue(byteArr, tClass);
} /**
* @return
* @Author dw
* @Description list<Object> 转为JSon字符串
* @Date 2020/4/22 17:15
* @Param
*/
public <T> String listToString(List<T> list) throws JsonProcessingException {
return mapper.writeValueAsString(list);
} /**
* @return
* @Author dw
* @Description JSON字符串转为List
* @Date 2020/4/22 17:17
* @Param
*/
public <T> List<T> jsonToList(String jsonStr) throws JsonProcessingException {
return mapper.readValue(jsonStr, List.class);
} /**
* @return
* @Author dw
* @Description Map 转Json字符串
* @Date 2020/4/22 17:21
* @Param
*/
public String mapToJSon(Map<Object, Object> map) throws JsonProcessingException {
return mapper.writeValueAsString(map);
} /**
* @Author dw
* @Description JSon 转 Map
* @Date 2020/4/22 17:23
* @Param
* @return
*/
public Map<Object, Object> jsonToMap(String jsonStr) throws JsonProcessingException {
return mapper.readValue(jsonStr,Map.class);
} }

fastJson--json与java格式的转换的更多相关文章

  1. JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...

  2. 转载:JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    转载网址:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html JSON与JAVA数据的转换(JSON 即 JavaScript Object Na ...

  3. JSON与JAVA数据的转换-----从3,23到现在5.25才过去2个月,感觉时间过得那么漫长

    从3月23号去报到,期间经历了清明节,毕业论文答辩,从万达搬到东兴,五一节,毕业照,从东兴的一边搬到另外一个房间中去 2个月的时间过得如此的快啊!白驹过隙! 不要着急,不要和别人比,小龙哥写过3年代码 ...

  4. json与java对象的转换,以及struts2对json的支持,实现ajax技术

    这两天学的东西有点多,今天抽个时间写下来,以此作为激励,这两天学了json,ajax,jQuery 一.使用第三方的工具java转换为json类型 首先就是java类型转换为json对象,首先要导入第 ...

  5. json与java bean对象转换

    第一步:引入fastjson的依赖jar包 注:如果引入此版本的依赖,导致项目不能启动(报错:找不到启动类);那么可以换一个版本的fastjson即可. 给出文字版: <!-- fastjson ...

  6. JSON与JAVA数据的转换

      1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( "sec ...

  7. 通过ajax获得json数据后格式的转换

    在有些情况下获取到的json数据可能是string类型的,需要把其格式化为json对象才方便解析. a)原生js通过ajax获取到的json 此时返回的数据默认是string型的,所以需要用eval( ...

  8. JSON与String 格式的转换

    JSON 可以用 .push() 添加新数据 var json =[ { title:"1",content:"Tom" }, { title:"2& ...

  9. JAVA对象转换为JSON及日期格式转换处理

    1.JSON日期格式转换 默认JSON对DATE类型会转换成一个多属性对象, 而不是单独的一个字符串, 在某些应用处理上不是很方便,  可以利用JsonValueProcessor来实现日期的转换. ...

随机推荐

  1. maven "mvn不是内部或外部命令,也不是可运行的程序或批处理文件"

    配置maven环境变量cmd控制台提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件 首先maven环境变量: 变量名:MAVEN_HOME 变量值:E:\apache-maven-3.2 ...

  2. 【比赛】NOIP2018 赛道修建

    最小值最大,二分长度 然后判断赛道大于等于这个长度最多可以有多少条 可以贪心,对于一个点和它的一些儿子,儿子与儿子之间尽量多配(排序后一大一小),剩下的选个最长的留给自己的父亲就好了 具体实现可以用一 ...

  3. python3 文件和流

    流: 打开文件: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True,  ...

  4. [CF976E]Well played!

    题目描述 Recently Max has got himself into popular CCG "BrainStone". As "BrainStone" ...

  5. edit 控件之隐藏光标

    @2019-02-22 [小记] 禁止聚焦功能便可实现

  6. 「SHOI2014」三叉神经树 解题报告

    「SHOI2014」三叉神经树 膜拜神仙思路 我们想做一个类似于动态dp的东西,首先得确保我们的运算有一个交换律,这样我们可以把一长串的运算转换成一块一块的放到矩阵上之类的东西,然后拿数据结构维护. ...

  7. One-hot encoding 独热编码

    http://blog.sina.com.cn/s/blog_5252f6ca0102uy47.html

  8. 利用httpd配置虚拟目录创建下载站点

    应用环境:通常放置一些文件来提供下载. 配置环境:centos7 //已经关闭Selinux和Firewall 需求假设:在网页输入主机IP并进入,会显示主机目录/home/share/的文件以提供下 ...

  9. 第二届强网杯wp

    web web签到 利用了md5碰撞 payload为 param1 =%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b% ...

  10. 牛客练习赛40 A 小D的剧场 (思维dp)

    链接:https://ac.nowcoder.com/acm/contest/369/A 题目描述 若你摘得小的星星 你将得到小的幸福  若你摘得大的星星 你将得到大的财富  若两者都能摘得 你将得到 ...