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. Python常见的问题

    1. new.init区别,如何实现单例模式,有什么优点 new是一个静态方法,init是一个实例方法new返回一个创建的实例,init什么都不返回new返回一个cls的实例时后面的init才能被调用 ...

  2. 【代码笔记】Web-CSS-CSS 语法

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  3. WGS84地理坐标系下,进行坐标运算

    经纬度坐标本身是不能直接运算的.原因是:经纬度坐标并非是直角坐标系.纬线圈间隔均匀,经线圈越靠近两级越密,如下图: 现在有个需求,已知两点和两点处射线斜率,求交点坐标. 虽然地球整体是个圆,但是局部地 ...

  4. C#中的yield return用法演示源码

    下边代码段是关于C#中的yield return用法演示的代码. using System;using System.Collections;using System.Collections.Gene ...

  5. nodejs+express+mongodb写api接口的简单尝试

    1:启动mongodb服务 我的mongoDB的安装目录:E:\mongoDB\bin,版本:3.4.9 打开cmd  -> e:(进入e盘) -> cd mongoDB/bin(进入mo ...

  6. MUI ios下用video标签默认全屏播放

    前几天用Hbuilder+MUI做了个应用,里边用到<video>标签,在Android下正常,但是在苹果手机老是默认全屏播放. 解决办法: 首先在video标签加上playsinline ...

  7. 新版的nuget包 PackageLicense 这样写

    Intro 最近编译类库项目的时候发现总是有个 licenseUrl 的警告,警告信息如下: warning NU5125: The 'licenseUrl' element will be depr ...

  8. asp.net core自定义端口

    asp.net Core 自定义端口 官方文档 aspnet内库源码: https://github.com/aspnet dotnet系统内库源码:https://github.com/dotnet ...

  9. Chrome浏览器,处理input自动填充时带黄色背景色

    /*Chrome浏览器打开网页,input自动赋值时,会带上屎黄色的背景色,下面是通过延长增加自动填充背景色的方式, 让用户感受不到样式的变化*/ input:-webkit-autofill, in ...

  10. mssql sqlserver获取指定月份当月天数总和

    摘要: 下文通过sql函数的形式,获取指定月份的总天数 实验环境:sqlserver 2008 R2 制作思路: 1. 获取指定月份的第一天, 2. 并采用dateadd向后加一个月形成一个新的日期 ...