java json转换(二)
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转换(二)的更多相关文章
- java json转换工具类
在java项目中,通常会用到json类型的转换,常常需要对 json字符串和对象进行相互转换. 在制作自定义的json转换类之前,先引入以下依赖 <!--json相关工具--><de ...
- java json转换(一)
主要使用了2个类 JsonConvert.class 和 ConvertHelper.class 由于常规转json.只要model牵涉到复杂的关联实体对象.那么就会出现 深度循环的错误. 因此这里通 ...
- java json转换
https://blog.csdn.net/WillJGL/article/details/77866224 SpringBoot中如果需要实现json的序列化和反序列化,我们会使用json解析工具. ...
- java json 转换
1.直接输出: 2.字符串 通过eval转换输出,里面涉及到一个转义问题,还要注意eval的用法里面需要加"("+ + ")" 3.
- java json与map互相转换(二)
java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
作者:buster2014 推荐:长安散人 fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map JSON字符串与Java对象的转换 1.将Java对象或Java ...
- FastJson、Jackson、Gson进行Java对象转换Json细节处理
前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...
- java json与map互相转换(一)
java json与map互相转换(一) CreationTime--2018年7月16日 Author:Marydon 1.准备工作 所需jar包:json-20180130.jar impor ...
随机推荐
- 【面向对象设计原则】之单一职责原则(SRP)
单一职责原则是面向对象原则五大原则中最简单,也是最重要的一个原则, 他的字面定义如下: 单一职责原则(Single Responsibility Principle, SRP): 一个类只负责一个功能 ...
- ArcGIS for JavaScript学习(二)Server发布服务
一 ArcGIS for Server 安装.配置 (1)双击setup (2)点击下一步完成安装 (3)配置 a 登录Manager 开始—>程序—>ArcGIS—>Manager ...
- Android入门第一课之Java基础
通知:由于本周六场地申请没通过,所以本周的培训临时取消. 今天给大家带来的是Android入门的第一课,由于教室申请的不确定性,因此,每次培训的内容都会在博客先提前释放出来.首先Android的APP ...
- 安卓开发:UI组件-RadioButton和复选框CheckBox
2.5RadioButton 为用户提供由两个及以上互斥的选项组成的选项集. 2.5.1精简代码 在按钮变多之后,多次重复书写点击事件有些繁琐,我们在这里创建一个事件OnClick,每次点击时调用该事 ...
- Linux 中NFS服务器的搭建
serve端IP:192.168.2.128 客户端IP:192.168.2.131 server端配置: 1.安装nfs,rpcbind,可以参考Linux 中yum的配置来安装: yum inst ...
- sqlserver常用数据类型(精炼版)
一:系统数据类型 2.浮点数据类型 3.字符数据类型 4.日期和时间数据类型 5.文本和图形数据类型 6.货币数据类型 7.位数据类型 8.二进制数据类型 9.其他数据类型 二:自定义数据类型 数 ...
- 【记录】文件加密软件 Gilisoft File Lock Pro v11.0 中文注册版
---恢复内容开始--- GiliSoft File Lock Pro 是一款优秀的加密工具,用它可以隐藏或加密文件.文件夹.磁盘分区,而且被加密的文件不会因为被加密(忘记密码)而丢失,可算是很安全的 ...
- docker容器日志收集方案(方案四,目前使用的方案)
先看数据流图,然后一一给大家解释 这个方案是将日志直接从应用代码中将日志输出到redis中(注意,是应用直接连接redis进行日志输出),redis充当一个缓存中间件有一定的缓存能力,不过有限,因 ...
- Spring Boot 2.x 综合示例-整合thymeleaf、mybatis、shiro、logging、cache开发一个文章发布管理系统
一.概述 经过HelloWorld示例(Spring Boot 2.x 快速入门(上)HelloWorld示例)( Spring Boot 2.x 快速入门(下)HelloWorld示例详解)两篇的学 ...
- PostgreSQL:Java使用CopyManager实现客户端文件COPY导入
在MySQL中,可以使用LOAD DATA INFILE和LOAD DATA LOCAL INFILE两种方式导入文本文件中的数据到数据库表中,速度非常快.其中LOAD DATA INFILE使用的文 ...