fastJson--json与java格式的转换
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格式的转换的更多相关文章
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...
- 转载:JSONObject.fromObject(map)(JSON与JAVA数据的转换)
转载网址:http://blog.sina.com.cn/s/blog_821025b70100wh6v.html JSON与JAVA数据的转换(JSON 即 JavaScript Object Na ...
- JSON与JAVA数据的转换-----从3,23到现在5.25才过去2个月,感觉时间过得那么漫长
从3月23号去报到,期间经历了清明节,毕业论文答辩,从万达搬到东兴,五一节,毕业照,从东兴的一边搬到另外一个房间中去 2个月的时间过得如此的快啊!白驹过隙! 不要着急,不要和别人比,小龙哥写过3年代码 ...
- json与java对象的转换,以及struts2对json的支持,实现ajax技术
这两天学的东西有点多,今天抽个时间写下来,以此作为激励,这两天学了json,ajax,jQuery 一.使用第三方的工具java转换为json类型 首先就是java类型转换为json对象,首先要导入第 ...
- json与java bean对象转换
第一步:引入fastjson的依赖jar包 注:如果引入此版本的依赖,导致项目不能启动(报错:找不到启动类);那么可以换一个版本的fastjson即可. 给出文字版: <!-- fastjson ...
- JSON与JAVA数据的转换
1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( "sec ...
- 通过ajax获得json数据后格式的转换
在有些情况下获取到的json数据可能是string类型的,需要把其格式化为json对象才方便解析. a)原生js通过ajax获取到的json 此时返回的数据默认是string型的,所以需要用eval( ...
- JSON与String 格式的转换
JSON 可以用 .push() 添加新数据 var json =[ { title:"1",content:"Tom" }, { title:"2& ...
- JAVA对象转换为JSON及日期格式转换处理
1.JSON日期格式转换 默认JSON对DATE类型会转换成一个多属性对象, 而不是单独的一个字符串, 在某些应用处理上不是很方便, 可以利用JsonValueProcessor来实现日期的转换. ...
随机推荐
- PHP no input file specified 三种解决方法
一.IIS Noinput file specified (IIS上报的错误) 方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS 方法二: 请修改php.i ...
- MT【299】对数型数列不等式
已知数列$\{\dfrac{1}{n}\}$的前$n$项和为$S_n$,则下面选项正确的是( )A.$S_{2018}-1>\ln 2018$B.$S_{2018}-1<\ln ...
- 【HDU - 4349】Xiao Ming's Hope
BUPT2017 wintertraining(15) #8H 题意 求组合数C(n,i),i从0到n,里面有几个奇数. 题解 直接打表的话可能就直接发现规律了. 规律是n的二进制里有几个1,答案就是 ...
- HNOI2019总结
HNOI2019总结 Day 1 开场看三道题,T1是个计算几何,T2是个操作树加\(border\),T3题意有点复杂.想T1想了半个多小时,发现那个钝角不是很会处理,但是40分暴力应该还是可以写, ...
- Angular、React.js 和Node.js到底选谁?
为了工作,程序员选择正确的框架和库来构建应用程序是至关重要的,这也就是为什么Angular和React之间有着太多的争议.Node.js的出现,让这场战争变得更加复杂,虽然有选择权通常是一件很棒的事情 ...
- 觉得一篇讲SPFA还不错的文章
我觉得他整理的有一些乱,我都改成插入代码了,看的顺眼一些 转载自http://blog.csdn.net/juststeps/article/details/8772755 下面的都是原文: 最短路径 ...
- mysql5.6做单向主从复制Replication
原理场景:MySQL从3.23版本开始提供复制功能.指的是将主数据库的DDL和DML操作通过二进制日志传到从服务器(也叫从库),然后在从库上对这些日志重新执行, 从而使得从库和主库的数据保持同步. 优 ...
- 2019 校内赛 RPG的天赋分支(贪心)
Problem Description 很多游戏都有天赋树的概念,天赋树的不同分支具有不同的属性加成,那么合理选择分支就非常重要了.Luke最近沉迷一款RPG游戏,它的天赋树机制如下:角色具有n个可选 ...
- servlet 上下文
一.应用需求: 如何统计网站在线人数? 使用ServletContext. 二.ServletContext详解: 1.是不同于session和cookie,是可以让所有客户端共同访问的内容,是在服务 ...
- CodeFroces-- 514.div2.C-Sequence Transformation
题目链接 :514.div2.C-Sequence Transformation #include<bits/stdc++.h> using namespace std; #define ...