java json转换(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanjun0612/article/details/86679085

 ConverHelper 详见:https://blog.csdn.net/hanjun0612/article/details/77891569

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);
	}
}

猜你喜欢

转载自blog.csdn.net/hanjun0612/article/details/86679085