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. Eslint检测出的问题如何自动修复

    1. sublime 插件 eslintAutoFix 目前只试了windows下 真是大坑!如果你用了这个插件但不能自动修复,那就不要再用这个了!全网无解! 提示系统找不到指定的文件,各种路径加入系 ...

  2. windows 服务器同步互联网时间

    @echo off ::netsh ipsec static set policy name=7road assign=n net time /setsntp:pool.ntp.org net sto ...

  3. ALLOT流控设备Qos解读

    ALLOT流控设备Qos解读  1. QOS 服务质量引擎 对于基于用户定义,QoS引擎根据用户定义进行决策,每个帧是否要: 传输数据帧到网络: 将数据帧存储在缓冲区: 丢掉数据帧. 新AOS改进了Q ...

  4. [CF977F]Consecutive Subsequence

    题目描述 You are given an integer array of length n. You have to choose some subsequence of this array o ...

  5. IISEXPRESS64位运行

    调试时使用IISEXPRESS 64位.经网上查找这样开启

  6. bzoj4240有趣的家庭菜园(贪心+逆序对)

    对家庭菜园有兴趣的JOI君每年在自家的田地中种植一种叫做IOI草的植物.JOI君的田地沿东西方向被划分为N个区域,由西到东标号为1~N.IOI草一共有N株,每个区域种植着一株.在第i个区域种植的IOI ...

  7. SSH防暴力破解脚本

    crontab -e 编辑添加一下内容 1 1 * * * sh /root/bin/Denyhosts.sh 脚本内容 #!/bin/bash #Denyhosts SHELL SCRIPT #20 ...

  8. django(六)之ORM数据库操作

    https://www.cnblogs.com/haiyan123/p/7732190.html 一.ORM介绍 ORM——object relation mapping 映射关系: 表名 ----- ...

  9. CF Educational Codeforces Round 57划水记

    因为是unrated于是就叫划水记了,而且本场也就用了1h左右. A.B:划水去了,没做 C:大水题,根据初三课本中圆的知识,可以把角度化成弧长,而这是正多边形,所以又可以化成边数,于是假设读入为a, ...

  10. 神经网络中w,b参数的作用(为何需要偏置b的解释)

    http://blog.csdn.net/xwd18280820053/article/details/70681750 可视图讲解神经元w,b参数的作用 在我们接触神经网络过程中,很容易看到就是这样 ...