您的位置:首页 > 编程语言 > Java开发

Java 操作 JSON

2015-07-02 11:07 591 查看
import java.util.*;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
import org.apache.commons.lang.StringUtils;

public class JsonUtil
{

/**
* 从一个JSON 对象字符格式中得到一个java对象
*
* @param jsonString
* @param pojoCalss
* @return
*/
public static Object jsonstrToObject(String jsonString, Class pojoCalss)
{
return JSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss);
}
public static Object jsonstrToObject(String jsonString, Class pojoCalss,Map map)
{
return JSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss,map);
}

/**
* 从json HASH表达式中获取一个map,改map支持嵌套功能
*
* @param jsonString
* @return
*/
public static Map<String,Object> jsonstrToMap(String jsonString)
{
JSONObject jsonObject = JSONObject.fromObject(jsonString);
Iterator keyIter = jsonObject.keys();
String key;
Object value;
Map<String,Object> valueMap = new HashMap<String,Object>();

while (keyIter.hasNext())
{
key = (String) keyIter.next();
value = jsonObject.get(key);
valueMap.put(key, value);
}

return valueMap;
}

public static String mapToString(Map map)
{
JSONObject json = JSONObject.fromObject(map);
return json.toString();
}
public static String mapToStringNotNull(Map map)
{
if(map==null)
return "";
JsonConfig c = new JsonConfig();
c.setJsonPropertyFilter(new IgnoreNullProcessor());
JSONObject json = JSONObject.fromObject(map,c);
return json.toString();
}

/**
* 从json数组中得到相应java数组
*
* @param jsonString
* @return
*/
public static Object[] jsonstrToObjectArray(String jsonString)
{
JSONArray jsonArray = JSONArray.fromObject(jsonString);
return jsonArray.toArray();

}

/**
* 从json对象集合表达式中得到一个java对象列表
*
* @param jsonString
* @param pojoClass
* @return
*/
public static List jsonstrToList(String jsonString, Class pojoClass)
{

JSONArray jsonArray = JSONArray.fromObject(jsonString);
JSONObject jsonObject;
Object pojoValue;

List list = new ArrayList();
for (int i = 0; i < jsonArray.size(); i++)
{

jsonObject = jsonArray.getJSONObject(i);
pojoValue = JSONObject.toBean(jsonObject, pojoClass);
list.add(pojoValue);

}
return list;

}

public static Object[] jsonstrToArray(String jsonString)
{
if(StringUtils.isBlank(jsonString))
return null;
JSONArray jsonArray = JSONArray.fromObject(jsonString);
return jsonArray.toArray();
}

/**
* 从json数组中解析出java字符串数组
*
* @param jsonString
* @return
*/
public static String[] jsonstrToStringArray(String jsonString)
{

JSONArray jsonArray = JSONArray.fromObject(jsonString);
String[] stringArray = new String[jsonArray.size()];
for (int i = 0; i < jsonArray.size(); i++)
{
stringArray[i] = jsonArray.getString(i);

}

return stringArray;
}

/**
* 从json数组中解析出javaLong型对象数组
*
* @param jsonString
* @return
*/
public static Long[] jsonStrToLongArray(String jsonString)
{

JSONArray jsonArray = JSONArray.fromObject(jsonString);
Long[] longArray = new Long[jsonArray.size()];
for (int i = 0; i < jsonArray.size(); i++)
{
longArray[i] = jsonArray.getLong(i);

}
return longArray;
}

/**
* 从json数组中解析出java Integer型对象数组
*
* @param jsonString
* @return
*/
public static Integer[] jsonStrToIntegerArray(String jsonString)
{

JSONArray jsonArray = JSONArray.fromObject(jsonString);
Integer[] integerArray = new Integer[jsonArray.size()];
for (int i = 0; i < jsonArray.size(); i++)
{
integerArray[i] = jsonArray.getInt(i);

}
return integerArray;
}

/**
* 从json数组中解析出java Date 型对象数组,使用本方法必须保证
* @param jsonString
* @return
*/
/* public static Date[] jsonstrToDateArray(String jsonString,String DataFormat){

JSONArray jsonArray = JSONArray.fromObject(jsonString);
Date[] dateArray = new Date[jsonArray.size()];
String dateString;
Date date;

for( int i = 0 ; i<jsonArray.size() ; i++ ){
dateString = jsonArray.getString(i);
date = DateUtil.stringToDate(dateString, DataFormat);
dateArray[i] = date;
}
return dateArray;
}*/

/**
* 从json数组中解析出java Integer型对象数组
*
* @param jsonString
* @return
*/
public static Double[] jsonStrToDoubleArray(String jsonString)
{

JSONArray jsonArray = JSONArray.fromObject(jsonString);
Double[] doubleArray = new Double[jsonArray.size()];
for (int i = 0; i < jsonArray.size(); i++)
{
doubleArray[i] = jsonArray.getDouble(i);

}
return doubleArray;
}

/**
* 将java对象转换成json字符串
*
* @param javaObj
* @return
*/
public static String objectToString(Object javaObj)
{

JSONObject json;
json = JSONObject.fromObject(javaObj);
return json.toString();

}

public static String objectToStringNotNull(Object javaObj)
{
JsonConfig c = new JsonConfig();
c.setJsonPropertyFilter(new IgnoreNullProcessor());

JSONObject json = JSONObject.fromObject(javaObj, c);
return json.toString();
}

public static String objectToStringNotNullZero(Object javaObj)
{
JsonConfig c = new JsonConfig();
c.setJsonPropertyFilter(new IgnoreNullZeroProcessor());

JSONObject json = JSONObject.fromObject(javaObj, c);
return json.toString();
}

public static String arrayToString(Collection c)
{
return JSONArray.fromObject(c).toString();
}
public static String arrayToStringNotNull(Collection c)
{
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new IgnoreNullProcessor());

return JSONArray.fromObject(c,config).toString();
}

/**
* 将java对象转换成json字符串,并设定日期格式
*
* @param javaObj
* @param dataFormat
* @return
*/
public static String objectToJsonString(Object javaObj, String dataFormat)
{

JSONObject json;
JsonConfig jsonConfig = configJson(dataFormat);
json = JSONObject.fromObject(javaObj, jsonConfig);
return json.toString();

}

/**
* JSON 时间解析器具
*
* @param datePattern
* @return
*/
public static JsonConfig configJson(String datePattern)
{
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{""});
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.registerJsonValueProcessor(Date.class,
new DateJsonValueProcessor(datePattern));

return jsonConfig;
}

/**
* @param excludes
* @param datePattern
* @return
*/
public static JsonConfig configJson(String[] excludes,
String datePattern)
{
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.registerJsonValueProcessor(Date.class,
new DateJsonValueProcessor(datePattern));

return jsonConfig;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: