package com.test.common.util;
import net.sf.json.JSONObject;
import flexjson.JSONDeserializer;
import flexjson.JSONSerializer;
public class JsonUtil {
/**
* selector 说明:
* 1. 选择器有一个或者多个选择子构成,多个选择子使用逗号","隔开;
* 2. 无论是否使用选择子,全部简单属性(除了数组、List、Map、Set等容器类型外的所有类型)始终被选择,除非这些属性被明确排除;
、 * 3. 选择子要么是属性名称,要么是由"."分隔的级联属性,要么是属性的通配表达式(含有*);
* 4. 选择子前的“-”表示排除该选择子匹配的属性;
*/
public static String toJson(Object obj,String selectors){
String[] ic = null;
if(selectors != null && !selectors.equals("")){
ic = selectors.split(",");
}
return toJson(obj,ic);
}
public static String toJson(Object obj,String[] selectors){
JSONSerializer ser = new JSONSerializer();
if(selectors == null || selectors.length == 0){
return ser.deepSerialize(obj);
}
for(int i=0; i< selectors.length; i++){
String sel = selectors[i];
if(sel.startsWith("-")){
ser.exclude(sel.substring(1));
}else{
ser.include(sel);
}
}
return ser.deepSerialize(obj);
}
/**
* json转换对象
* @param js
* @param classz
* @return
*/
@SuppressWarnings("rawtypes")
public static Object jsonToBean(String js,Class classz){
JSONObject jsonObject = JSONObject.fromObject(js);
Object obj=JSONObject.toBean(jsonObject, classz);
return obj;
}
/**
* 对象转换json字符串
* @param obj
* @return
*/
public static String beanToJson(Object obj){
JSONObject json=JSONObject.fromObject(obj);
return json.toString();
}
//将JSON数据转换为JAVA对象(不能传入数组类型)
public static <T> T fromJson(String json,Class<T> clazz){
JSONDeserializer<T> dser = new flexjson.JSONDeserializer<T>().use(null,clazz);
return dser.deserialize(json);
}
}
import net.sf.json.JSONObject;
import flexjson.JSONDeserializer;
import flexjson.JSONSerializer;
public class JsonUtil {
/**
* selector 说明:
* 1. 选择器有一个或者多个选择子构成,多个选择子使用逗号","隔开;
* 2. 无论是否使用选择子,全部简单属性(除了数组、List、Map、Set等容器类型外的所有类型)始终被选择,除非这些属性被明确排除;
、 * 3. 选择子要么是属性名称,要么是由"."分隔的级联属性,要么是属性的通配表达式(含有*);
* 4. 选择子前的“-”表示排除该选择子匹配的属性;
*/
public static String toJson(Object obj,String selectors){
String[] ic = null;
if(selectors != null && !selectors.equals("")){
ic = selectors.split(",");
}
return toJson(obj,ic);
}
public static String toJson(Object obj,String[] selectors){
JSONSerializer ser = new JSONSerializer();
if(selectors == null || selectors.length == 0){
return ser.deepSerialize(obj);
}
for(int i=0; i< selectors.length; i++){
String sel = selectors[i];
if(sel.startsWith("-")){
ser.exclude(sel.substring(1));
}else{
ser.include(sel);
}
}
return ser.deepSerialize(obj);
}
/**
* json转换对象
* @param js
* @param classz
* @return
*/
@SuppressWarnings("rawtypes")
public static Object jsonToBean(String js,Class classz){
JSONObject jsonObject = JSONObject.fromObject(js);
Object obj=JSONObject.toBean(jsonObject, classz);
return obj;
}
/**
* 对象转换json字符串
* @param obj
* @return
*/
public static String beanToJson(Object obj){
JSONObject json=JSONObject.fromObject(obj);
return json.toString();
}
//将JSON数据转换为JAVA对象(不能传入数组类型)
public static <T> T fromJson(String json,Class<T> clazz){
JSONDeserializer<T> dser = new flexjson.JSONDeserializer<T>().use(null,clazz);
return dser.deserialize(json);
}
}