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. jqGrid 中文配置 - grid.locale-cn.js 多国语言

    中文配置如下:多国语言(demo 内有官方下载连接 ): jqGrid 表格插件中文 grid.locale-cn.js 代码如下: ;(function ($) { /** * jqGrid Eng ...

  2. Android客户端与数据库交互数据的简单学习

    Ø  数据库整理方案如下: 一.Android+ webservices+SQLServer  : 通过webservices客户端向指定服务器发送请求,服务器响应返回指定格式的数据,如json或者x ...

  3. JS中的continue,break,return的区别

    关于continue.break.return的用法区别早在大一C语言学习中研究过,这里单独拿出来,总结一下. 还是来点实在的吧,上代码 <!DOCTYPE html PUBLIC " ...

  4. IncDec Sequence(差分)

    题意:给定一个序列,可以对一个区间进行加1或减1的操作,问最少需要多少次可以将序列的值一样. Solution 我们将序列差分,得到一个差分数组. 对于每一个区间操作,我们可以把它转化为在查分数组上某 ...

  5. 生命不息,折腾不止 ~ 旧PC改造之家庭影音

    前言引入 之前把在校园陪伴多年的旧电脑由Win装成了Linux,的确不卡了,基本上日常办公也够了(大项目还是吃不消,日常捣鼓倒是够了),然后把真正的工作游戏本也改成了Linux,那么旧电脑又变成闲置机 ...

  6. 浅析 @PathVariable 和 @RequestParam(转发,非原创)

    首先 上两个地址:地址①http://localhost:8989/SSSP/emps?pageNo=2地址②http://localhost:8989/SSSP/emp/7如果想获取地址①中的 pa ...

  7. apache StringUtils 工具类

    // org.apache.commons.lang3.StringUtils // 1.IsEmpty/IsBlank - checks if a String contains text 检查是否 ...

  8. P3378 堆の模板

    如果不是可并堆/带修堆/卡常题,一般都用优先队列实现. 很多O(nlogn)过不了的题都可以用蚯蚓的套路来实现!!! 优先队列带修用延迟删除法. 堆,可以简单的用优先队列来实现,也可以自己手打. #i ...

  9. 洛谷P2805 植物大战僵尸

    题意:给你一张图,每个节点保护若干节点. 当一个节点不被保护的时候,你就可以gay掉它. gay每个节点都有收益(可能为负),求最大总收益. 解:首先发现是一个最大权闭合子图. 把保护关系变成被保护, ...

  10. vue使用element-ui 监听使用回车键事件

    因为element-ui 对input做了封装,使用@keyup.enter="fn"触发Enter键事件就不会触发,解决:后面追加.native.@keyup.enter.nat ...