七、java项目常用工具类之json序列号工具类
2017-11-12 15:55
316 查看
项目环境:
jdk1.8+spring4.3.12
一、问题描述及试用场景:
在项目开发中,打印日志时需要把实体类json序列化或者网络传输时也需要json序列化。
二、样例代码:
代码所用jar包maven坐标:
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.39</version>
</dependency>
项目地址:https://github.com/SuperEggMan/renting_frame_finish_bek; ps:感兴趣的可以start哦!
声明:此项目仅是抛砖引玉,内容不是特别完善。如有转载,请注明此处。
jdk1.8+spring4.3.12
一、问题描述及试用场景:
在项目开发中,打印日志时需要把实体类json序列化或者网络传输时也需要json序列化。
二、样例代码:
package org.egg.utils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import java.util.*; /** * @author dataochen * @Description * @date: 2017/11/7 17:51 */ public class JsonUtil { /** * JSON字符串转换成对象 * * @param jsonString * 需要转换的字符串 * @param type * 需要转换的对象类型 * @return 对象 */ public static <T> T fromJson(String jsonString, Class<T> type) { JSONObject jsonObject = JSONObject.parseObject(jsonString); return (T) JSONObject.toJavaObject(jsonObject, type); } /** * 将JSONArray对象转换成list集合 * * @param jsonArr * @return */ public static List<Object> jsonToList(JSONArray jsonArr) { List<Object> list = new ArrayList<Object>(); for (Object obj : jsonArr) { if (obj instanceof JSONArray) { list.add(jsonToList((JSONArray) obj)); } else if (obj instanceof JSONObject) { list.add(jsonToMap((JSONObject) obj)); } else { list.add(obj); } } return list; } /** * 将json字符串转换成map对象 * * @param json * @return */ public static Map<String, Object> jsonToMap(String json) { JSONObject obj = JSONObject.parseObject(json); return jsonToMap(obj); } /** * 将JSONObject转换成map对象 * * @param obj * @return */ public static Map<String, Object> jsonToMap(JSONObject obj) { Set<?> set = obj.keySet(); Map<String, Object> map = new HashMap<String, Object>(set.size()); for (Object key : obj.keySet()) { Object value = obj.get(key); if (value instanceof JSONArray) { map.put(key.toString(), jsonToList((JSONArray) value)); } else if (value instanceof JSONObject) { map.put(key.toString(), jsonToMap((JSONObject) value)); } else { map.put(key.toString(), obj.get(key)); } } return map; } /** * log,显示null;对象转换为json字符串 * @param obj * @return */ public static String logObjToString(Object obj){ return JSONObject.toJSONString(obj, SerializerFeature.WriteMapNullValue); } }
代码所用jar包maven坐标:
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.39</version>
</dependency>
项目地址:https://github.com/SuperEggMan/renting_frame_finish_bek; ps:感兴趣的可以start哦!
声明:此项目仅是抛砖引玉,内容不是特别完善。如有转载,请注明此处。
相关文章推荐
- 四、java项目常用工具类之http请求工具类
- 一、java项目常用工具类之加密工具类
- 项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!
- 项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!
- 二、java项目常用工具类之beancopy,bean和map转换工具类
- 八、java项目常用工具类之卡号,手机号隐藏工具类
- 五、java项目常用工具类之properties提取数据工具类
- 一个java操作ini格式文件的工具类,支持增删查改,不过由于项目所需,只做了针对单行的操作。写得不好求指教。
- 自己动手用JAVA编写JSON工具类
- Java基础学习总结(54)——JSON和Map转换的工具类
- JSON解析、JAVA常用的工具类、JAVA集合框架、JAVA泛型、枚举
- Java实现的JSONUtil工具类与用法示例
- java工具类开发之json工具类JsonUtils和写数据回页面工具类ResponseUtils
- Java SSH 项目总结——Ajax+Json 级联菜单
- [分享]Java之Bean、Map、Json之间的互相转换工具类
- 在java项目中的mongodb的_id被fastjson转为json时竟然丢失了
- JAVA项目做API,SpringMVC拦截异常并返回Json
- javawebday62(json json-lib json工具类 ajaxutils.js
- 解决项目中跨域问题,自定义json处理工具类project2-day05
- Java中Json对象序列化与反序列化工具类