fastJson工具类
功能:
- json<-->obj
- json<-->map
- map<-->obj
- json---->array(array->json,可使用obj->json)
- json---->list(list->json,可使用obj->json)
代码:
FastJsonUtils.java
package com.ebc.json;import java.util.List; import java.util.Map;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer; import com.alibaba.fastjson.serializer.SerializeConfig; import com.alibaba.fastjson.serializer.SerializerFeature;/*** fastjson工具类* @date 2019-5-27*/ public class FastJsonUtils {private static final SerializeConfig config;static {config = new SerializeConfig();// 使用和json-lib兼容的日期输出格式config.put(java.util.Date.class, new JSONLibDataFormatSerializer());// 使用和json-lib兼容的日期输出格式config.put(java.sql.Date.class, new JSONLibDataFormatSerializer());}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};public static String obj2json(Object object) {return JSON.toJSONString(object, config);}public static String obj2json2(Object object) {return JSON.toJSONString(object, config, features);}public static <T> T json2obj(String text, Class<T> clazz) {return JSON.parseObject(text, clazz);}public static <T> Object[] json2array(String text, Class<T> clazz) {return JSON.parseArray(text, clazz).toArray();}public static <T> List<T> json2list(String text, Class<T> clazz) {return JSON.parseArray(text, clazz);}public static <K, V> Map<K, V> json2map(String s) {Map<K, V> m = (Map<K, V>) JSONObject.parseObject(s);return m;}public static <K, V> String map2json(Map<K, V> m) {String s = JSONObject.toJSONString(m);return s;}public static <K,V,T> T map2obj(Map<K, V> m, Class<T> clazz) {return json2obj(map2json(m),clazz);}public static <K, V> Map<K, V> obj2map(Object object) {return json2map(obj2json(object));} }
Water.java
package json;import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONType; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString;import java.io.Serializable; import java.util.Date;/*** @author yaoyuan2* @date 2019/5/25*/ @Setter @Getter @NoArgsConstructor @ToString @JSONType(typeName = "com.ebc.entity.Water") public class Water implements Serializable {private String id;private String merchno;private String transcode;private Double amount;@JSONField(name = "trans_time",format = "yyyy-MM-dd HH:mm:ss")private String transTime;@JSONField(name = "create_time")private Date createTime;private String status; }
JsonTest.java
package json;import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Console; import cn.hutool.core.util.IdUtil; import com.ebc.json.FastJsonUtils; import org.junit.Test;import java.util.Date; import java.util.List; import java.util.Map;/*** @author yaoyuan2* @date 2019/5/27*/ public class JsonTest {@Testpublic void obj2json() {Water water = new Water();water.setId(IdUtil.objectId());water.setAmount(123.45);water.setMerchno("100000000000001");water.setStatus("00");water.setTranscode("84");water.setCreateTime(DateUtil.date());water.setTransTime(DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));String json = FastJsonUtils.obj2json(water);Console.log(json);}@Testpublic void obj2json2() {Water water = new Water();water.setId(IdUtil.objectId());water.setAmount(123.45);water.setMerchno("100000000000001");//water.setStatus("00");water.setTranscode("84");water.setCreateTime(DateUtil.date());water.setTransTime(DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));String json = FastJsonUtils.obj2json2(water);Console.log(json);}@Testpublic void json2obj() {String json = "{\"amount\":123.45,\"create_time\":1558947042583,\"id\":\"5ceba4e24cbdfa60c44677d8\",\"merchno\":\"100000000000001\",\"status\":\"\",\"trans_time\":\"2019-05-27 16:50:42\",\"transcode\":\"84\"}";Water water = FastJsonUtils.json2obj(json,Water.class);Console.log(water);}@Testpublic void json2array() {Water [] waters = new Water[1];Water water = new Water();water.setId(IdUtil.objectId());water.setAmount(123.45);water.setMerchno("100000000000001");//water.setStatus("00");water.setTranscode("84");water.setCreateTime(DateUtil.date());water.setTransTime(DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));waters[0] = water;String json = FastJsonUtils.obj2json(waters);Console.log(json);//转数组后,返回的必须是Object[],不能强转。可在for循环里转Object [] ws = FastJsonUtils.json2array(json,Water.class);for (int i = 0; i < ws.length; i++) {Water w = (Water)ws[i];Console.log(w);}}@Testpublic void json2list() {List<Water> waters = CollUtil.newArrayList();Water water = new Water();water.setId(IdUtil.objectId());water.setAmount(123.45);water.setMerchno("100000000000001");//water.setStatus("00");water.setTranscode("84");water.setCreateTime(DateUtil.date());water.setTransTime(DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));waters.add(water);String json = FastJsonUtils.obj2json(waters);Console.log(json);//可强转List<Water> ws = FastJsonUtils.json2list(json,Water.class);for (int i = 0; i < ws.size(); i++) {Water w = ws.get(i);Console.log(w);}}@Testpublic void json2map() {String json = "{\"amount\":123.45,\"create_time\":1558947042583,\"id\":\"5ceba4e24cbdfa60c44677d8\",\"merchno\":\"100000000000001\",\"status\":\"\",\"trans_time\":\"2019-05-27 16:50:42\",\"transcode\":\"84\"}";Map<String,Object> map = FastJsonUtils.json2map(json);map.forEach((k,v)->{Console.log(k+"="+v);});}@Testpublic void map2json() {String json = "{\"amount\":123.45,\"create_time\":1558947042583,\"id\":\"5ceba4e24cbdfa60c44677d8\",\"merchno\":\"100000000000001\",\"status\":\"\",\"trans_time\":\"2019-05-27 16:50:42\",\"transcode\":\"84\"}";Map<String,Object> map = FastJsonUtils.json2map(json);map.forEach((k,v)->{Console.log(k+"="+v);});String json2 = FastJsonUtils.map2json(map);Console.log(json2);}@Testpublic void map2obj() {String json = "{\"amount\":123.45,\"create_time\":1558947042583,\"id\":\"5ceba4e24cbdfa60c44677d8\",\"merchno\":\"100000000000001\",\"status\":\"\",\"trans_time\":\"2019-05-27 16:50:42\",\"transcode\":\"84\"}";Map<String,Object> map = FastJsonUtils.json2map(json);Water w = FastJsonUtils.map2obj(map,Water.class);Console.log(w);}@Testpublic void obj2map() {Water water = new Water();water.setId(IdUtil.objectId());water.setAmount(123.45);water.setMerchno("100000000000001");//water.setStatus("00");water.setTranscode("84");water.setCreateTime(DateUtil.date());water.setTransTime(DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));Map<String,Object> map = FastJsonUtils.obj2map(water);map.forEach((k,v)->{Console.log(k+"="+v);});} }
转载于:https://www.cnblogs.com/yaoyuan2/p/10932230.html
fastJson工具类相关推荐
- 使用fastjson工具类json字符串和对象之间的转换
文章目录 一.引入依赖 二.创建user实体类 三.测试 一.引入依赖 <!--字符串和对象操作工具类 Start--><dependency><groupId>c ...
- 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)
Json解析工具类 前言 一.各个JSON技术的简介 1.1 FastJson角色 1.2 Jackson角色 1.3 Gson角色 二.使用步骤 2.1 引入库 1.FastJson依赖 2.Jac ...
- JSONUtils工具类(基于alibaba fastjson)
1.引入maven依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson&l ...
- Java封装OkHttp3工具类
点击关注公众号,Java干货及时送达 作者:如漩涡 https://blog.csdn.net/m0_37701381 Java封装OkHttp3工具类,适用于Java后端开发者 说实在话,用过挺多 ...
- 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...
- jsonutil java_Java实现的JSONUtil工具类与用法示例
本文实例讲述了Java实现的JSONUtil工具类与用法.分享给大家供大家参考,具体如下: import java.util.HashMap; import java.util.Map; import ...
- java常用工具类_java(二):工作中常用到的工具类
工作中大家要用到很多工具类,第三方的jar中有很多现成的工具类符合自己的项目需要,这个时候就不需要去重复造轮子了,从而节省了很多时间,大家可以利用这些时间去做其它重要的事情,如果没有符合自己的工具类, ...
- HttpClient工具类
HttpClient工具类 package cn.sh.steven.httpclient;import com.alibaba.fastjson.JSON; import com.alibaba.f ...
- JAVA——Okhttp封装工具类
基本概念 OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架. Maven <!--OK HTTP Client--><dependency><grou ...
最新文章
- ubuntu搭建tiny4412环境【学习笔记】
- Linux 0-1 修改主机名及IP地址
- NumPy:数组计算
- css tips —— 神奇的max-width,min-width, width覆盖规则
- [随感]GIS开发的困惑
- 7-3 主从复制配置
- 【转载国外好文】代工开发一个iOS应用没有那么容易
- 基于k8s的测试执行工具:TestKube
- iOS精品源码,GHConsole图片浏览器圆形进度条音视频传输连击礼物弹出动画
- C#中索引器的简单使用
- Python语法基础——关于全局变量与局部变量
- Windows如何查看局域网内所有设备的ip
- python辅助开发工具_Python开发工具:WingPro 7
- 计算机基础考试在线搜题,计算机基础考试题库 (含答案).doc
- Kolmogorov复杂性 简介
- 全网的 IP 归属地显示,带你5分钟加上,就是这么简单
- 搜狗高级测试经理诸葛东明谈基于AI图像识别的输入法性能测试实践
- 如何利用MATLAB建立Lotka-Volterra模型及其改进模型
- 什么是Web3?为什么说通往Web3的是区块链?
- Sigar获取系统信息
热门文章
- python传递utf8 到c++_深入理解Python的TLS机制和Threading.local()
- JSON.toJSONString 出现 {$ref: “$.deduceGridCellVoSet[0].stateFlightsBasic[0]“}
- 关于Navicat 连接mysql报11001错误
- 实现java内存队列消费事件-ConcurrentLinkedQueue
- 安全出口指示灯警报、如何解除呢
- 数据库数据类型和占用字节数对比
- avue-crud属性说明
- yum更新指定的软件
- 《Android Studio开发实战 从零基础到App上线》源码运行问题解答
- CUDA学习(三)之使用GPU进行两个数相加