package com.kps.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
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.nio.charset.Charset;
import java.util.List;
import java.util.Map;
import java.util.Set; /**
* Created by helka067 on 2018/7/20.
* json字符串,jsonobject, java对象
*
*/ @SuppressWarnings("all")
public class FastJsonUtils {
private static final SerializeConfig config =new SerializeConfig();
private static final SerializerFeature[] features = { SerializerFeature.QuoteFieldNames, // 双引号
SerializerFeature.WriteMapNullValue, // 输入空值字段
SerializerFeature.WriteEnumUsingToString, // 枚举输出STRING
SerializerFeature.WriteNullBooleanAsFalse, // 布尔类型如果为null输出false
SerializerFeature.WriteNullListAsEmpty, // List字段如果为null输出为[]
//SerializerFeature.WriteNullNumberAsZero, // number类型如果为null输出0
//SerializerFeature.WriteNullStringAsEmpty, // 字符串类型如果为null输出""
SerializerFeature.SortField, // 按字段名称排序后进行输出
SerializerFeature.WriteDateUseDateFormat// 设置日期格式
}; // java对象转json
public static String getBeanToJson(Object object) {
return JSON.toJSONString(object, config, features);
} /**
* hibernate model存在关联循环,截取层次处理
* @throws Exception
*/
public static String toHJSON(Object object, int... layers) {
if (object == null)
return "";
if (object instanceof List) {
object = ConverHelper.getListCopy((List) object, layers);
} else if (object instanceof Set) {
object = ConverHelper.getSetCopy((Set) object, layers);
} else if (object instanceof Map) {
object = ConverHelper.getMapCopy((Map) object, layers);
} else {
object = ConverHelper.getCopy(object, layers);
}
return JSON.toJSONString(object, config, features); } // json转java对象
public static <T> T getJsonToBean(String json, Class<T> clazz) {
return JSON.parseObject(json, clazz);
} // json转java对象
public static <T> T getJsonToBean(String json, TypeReference<T> tr) {
return JSON.parseObject(json, tr);
} // json转换为数组
public static <T> Object[] toArray(String json, Class<T> clazz) {
return JSON.parseArray(json, clazz).toArray();
} // json转换为List
public static <T> List<T> toList(String json, Class<T> clazz) {
return JSON.parseArray(json, clazz);
} // JsonObject转json
public static String JsonObjectToJson(JSONObject jo) {
return jo.toJSONString();
} // JsonObject转java对象
public static <T> T JsonObjectToBean(JSONObject jo, Class<T> clazz) {
return jo.toJavaObject(clazz);
} // JsonObject转java对象
public static <T> T JsonObjectToBean(JSONObject jo, TypeReference<T> tr) {
return jo.toJavaObject(tr);
} //JsonArray转json
public static String JsonArrayToJson(JSONArray ja) {
return ja.toJSONString();
} // JsonArray转java对象
public static <T> List<T> JsonArrayToBean(JSONArray ja, Class<T> clazz) {
return ja.toJavaList(clazz);
} // java对象转jsonobject
public static JSONObject toJsonObject(Object object) {
String s = getBeanToJson(object);
return (JSONObject)JSONObject.toJSON(object);
} // 将string转化为序列化的json字符串
public static Object textToJson(String text) {
Object objectJson = JSON.parse(text);
return objectJson;
} //map转实体对象
public static <T> T mapToBean(Map map,Class<T> clazz) {
String json = getBeanToJson(map);
return JSON.parseObject(json, clazz);
} // map转实体对象
public static <T> List<T> mapToBean(List<Map> list, Class<T> clazz) {
String json = getBeanToJson(list);
return JSON.parseArray(json, clazz);
}
}

ConverHelper 详见:https://www.cnblogs.com/hanjun0612/p/9779781.html

java json转换(二)的更多相关文章

  1. java json转换工具类

    在java项目中,通常会用到json类型的转换,常常需要对 json字符串和对象进行相互转换. 在制作自定义的json转换类之前,先引入以下依赖 <!--json相关工具--><de ...

  2. java json转换(一)

    主要使用了2个类 JsonConvert.class 和 ConvertHelper.class 由于常规转json.只要model牵涉到复杂的关联实体对象.那么就会出现 深度循环的错误. 因此这里通 ...

  3. java json转换

    https://blog.csdn.net/WillJGL/article/details/77866224 SpringBoot中如果需要实现json的序列化和反序列化,我们会使用json解析工具. ...

  4. java json 转换

    1.直接输出: 2.字符串 通过eval转换输出,里面涉及到一个转义问题,还要注意eval的用法里面需要加"("+ + ")" 3.

  5. java json与map互相转换(二)

      java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...

  6. fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map

    作者:buster2014 推荐:长安散人 fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map JSON字符串与Java对象的转换 1.将Java对象或Java ...

  7. FastJson、Jackson、Gson进行Java对象转换Json细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  8. FastJson、Jackson、Gson进行Java对象转换Json的细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  9. java json与map互相转换(一)

      java json与map互相转换(一) CreationTime--2018年7月16日 Author:Marydon 1.准备工作 所需jar包:json-20180130.jar impor ...

随机推荐

  1. 浅谈OA系统与Portal门户的区别

    随着社会信息化的发展与进步,OA办公自动化软件打破了传统复杂的办公方式,使各个行业实现了高效的无纸化办公.由此一来OA快速成长为继财务软件.ERP软件之后的第三大管理软件.随着企业信息化系统的不断增多 ...

  2. linux下的QT打包方法

    一句话很简单,一个shell脚本搞定,不跟你嘻嘻哈哈 #!/bin/shexe="ThorIceLocker"#存放你的可执行文件的名字des="/home/ninetr ...

  3. Docker创建JIRA 7.2.4中文破解版

    目录 目录 1.介绍 1.1.什么是JIRA? 2.JIRA的官网在哪里? 3.如何下载安装? 4.对JIRA进行配置 4.1.打开浏览器:http://localhost:20012 4.2.JIR ...

  4. Centos7 安装Tomcat并运行程序

    运行环境:Centos7 jdk:1.8.0_171  Tocmcat:8.5.31 下载地址 :https://tomcat.apache.org/download-80.cgi#8.5.31 Ap ...

  5. CentOS.7下安装配置FTP和SFTP服务

    一: FTP Centos7中默认已经安装了sshd服务(sftp), vsftpd需要手动安装 1.安装并启动FTP服务 1.1 安装vsftpd 使用 yum 安装 vsftpd yum inst ...

  6. linux文件行首行尾添加或替换

    sed -i 's/\(^.*\)/http:\/\/www.blutmagie.de\/img\/flags\//g' cc.txt sed -i 's/\($\)/.gif/g' cc.txt

  7. Python编写脚本(输出三星形状的‘*’符号)

    环境:python3.* 心得:个人认为脚本非我强项,以下效果可以有更简单解决方案,纯属练习逻辑. 方案一: s=1 while s<=10: #这是决定多少列,起始为1,大循环一圈即加一,就是 ...

  8. Linux内存描述之内存页面page--Linux内存管理(四)

    1 Linux如何描述物理内存 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU被划分为多个节点(node), 内存则被分簇, 每个CPU对应一个本地物理内存, 即一 ...

  9. Burpsuite 之intruder

    首先工具:Burpsuite1.7,DVWA,火狐浏览器代理插件,火狐浏览器,密码字典(以下用Bp代指burpsuite) 启动Bp,启动DVWA,并打开本地代理功能 ​ 开启bp的拦截功能,并在dv ...

  10. RabbitMQ广播:direct模式

    一. 消息的广播需要exchange:exchange是一个转发器,其实把消息发给RabbitMQ里的exchange fanout: 所有bind到此exchange的queue都可以接收消息,广播 ...