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来实现日期的转换. ...
随机推荐
- 从快感到成就感:多巴胺vs内啡肽
从快感到成就感:多巴胺vs内啡肽 来源 https://zhuanlan.zhihu.com/p/24697188 作者:朱良 编辑于 2017-06-20 努力不一定成功,但不努力一定 ...
- vscode跳转到函数定义处
需要安装对应语言的插件,帮助-欢迎使用,安装javascript, php php还需要安装php7, 到官网https://windows.php.net/download#php-7.2 下载解压 ...
- 洛谷P4891 序列(势能线段树)
洛谷题目传送门 闲话 考场上一眼看出这是个毒瘤线段树准备杠题,发现实在太难调了,被各路神犇虐哭qwq 考后看到各种优雅的暴力AC......宝宝心里苦qwq 思路分析 题面里面是一堆乱七八糟的限制和性 ...
- Hdoj 1421.搬寝室 题解
Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆, ...
- linux下对clamav杀毒软件的安装和配置
下载安装 首先安装zlib库: # yum install zlib zlib-devel //安装可忽略 下载安装clamav源码包 clamav管网:http://www.clamav.net/d ...
- Apache动态加载模块
添加步骤:如要额外安装cgi,先找到mod_cgi.c及mod_cgid.c.一般在apache安装包目录下,如 ./httpd-2.2.25/modules/generators .#编译安装 cg ...
- luogu5008 逛庭院 (tarjan缩点)
首先如果这是一个DAG,我按照拓扑序倒着去选,一定能选到所有入度不为0的点 然后考虑有环的情况 我们拎出来一个强连通分量 先假设它缩点以后是没有入度的 那我最后它里面一定至少剩一个不能选 因为就剩一个 ...
- js 获取随机数 Math.random()
js 获取随机数 Math.random() // 结果为0-1间的一个随机数(包括0,不包括1) var randomNum1 = Math.random(); //console.log(rand ...
- poj1845 Sumdiv
poj1845 Sumdiv 数学题 令人痛苦van分的数学题! 题意:求a^b的所有约数(包括1和它本身)之和%9901 这怎么做呀!!! 百度:约数和定理,会发现 p1^a1 * p2^a2 * ...
- CF1140E Palindrome-less Arrays
我觉得这道题非常有前途....... 题意:给定一个填了一半的数组,你要把它补完,使之不存在奇回文串,求方案数.字符集为k. n,k<=20w 解:不能有长为三的回文串.也就是不能有两个相隔1的 ...