功能:

  • 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工具类相关推荐

  1. 使用fastjson工具类json字符串和对象之间的转换

    文章目录 一.引入依赖 二.创建user实体类 三.测试 一.引入依赖 <!--字符串和对象操作工具类 Start--><dependency><groupId>c ...

  2. 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)

    Json解析工具类 前言 一.各个JSON技术的简介 1.1 FastJson角色 1.2 Jackson角色 1.3 Gson角色 二.使用步骤 2.1 引入库 1.FastJson依赖 2.Jac ...

  3. JSONUtils工具类(基于alibaba fastjson)

    1.引入maven依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson&l ...

  4. Java封装OkHttp3工具类

    点击关注公众号,Java干货及时送达  作者:如漩涡 https://blog.csdn.net/m0_37701381 Java封装OkHttp3工具类,适用于Java后端开发者 说实在话,用过挺多 ...

  5. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...

  6. jsonutil java_Java实现的JSONUtil工具类与用法示例

    本文实例讲述了Java实现的JSONUtil工具类与用法.分享给大家供大家参考,具体如下: import java.util.HashMap; import java.util.Map; import ...

  7. java常用工具类_java(二):工作中常用到的工具类

    工作中大家要用到很多工具类,第三方的jar中有很多现成的工具类符合自己的项目需要,这个时候就不需要去重复造轮子了,从而节省了很多时间,大家可以利用这些时间去做其它重要的事情,如果没有符合自己的工具类, ...

  8. HttpClient工具类

    HttpClient工具类 package cn.sh.steven.httpclient;import com.alibaba.fastjson.JSON; import com.alibaba.f ...

  9. JAVA——Okhttp封装工具类

    基本概念 OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架. Maven <!--OK HTTP Client--><dependency><grou ...

最新文章

  1. ubuntu搭建tiny4412环境【学习笔记】
  2. Linux 0-1 修改主机名及IP地址
  3. NumPy:数组计算
  4. css tips —— 神奇的max-width,min-width, width覆盖规则
  5. [随感]GIS开发的困惑
  6. 7-3 主从复制配置
  7. 【转载国外好文】代工开发一个iOS应用没有那么容易
  8. 基于k8s的测试执行工具:TestKube
  9. iOS精品源码,GHConsole图片浏览器圆形进度条音视频传输连击礼物弹出动画
  10. C#中索引器的简单使用
  11. Python语法基础——关于全局变量与局部变量
  12. Windows如何查看局域网内所有设备的ip
  13. python辅助开发工具_Python开发工具:WingPro 7
  14. 计算机基础考试在线搜题,计算机基础考试题库 (含答案).doc
  15. Kolmogorov复杂性 简介
  16. 全网的 IP 归属地显示,带你5分钟加上,就是这么简单
  17. 搜狗高级测试经理诸葛东明谈基于AI图像识别的输入法性能测试实践
  18. 如何利用MATLAB建立Lotka-Volterra模型及其改进模型
  19. 什么是Web3?为什么说通往Web3的是区块链?
  20. Sigar获取系统信息

热门文章

  1. python传递utf8 到c++_深入理解Python的TLS机制和Threading.local()
  2. JSON.toJSONString 出现 {$ref: “$.deduceGridCellVoSet[0].stateFlightsBasic[0]“}
  3. 关于Navicat 连接mysql报11001错误
  4. 实现java内存队列消费事件-ConcurrentLinkedQueue
  5. 安全出口指示灯警报、如何解除呢
  6. 数据库数据类型和占用字节数对比
  7. avue-crud属性说明
  8. yum更新指定的软件
  9. 《Android Studio开发实战 从零基础到App上线》源码运行问题解答
  10. CUDA学习(三)之使用GPU进行两个数相加