java json 通用类_java操作的json通用类

package com.baiyyy.polabs.util.json;

importjava.text.ParseException;

importjava.util.ArrayList;

importjava.util.Date;

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Map;

importnet.sf.json.JSONArray;

importnet.sf.json.JSONObject;

importnet.sf.json.JsonConfig;

importnet.sf.json.util.CycleDetectionStrategy;

/**

*处理json的工具类,负责json数据转换成java对象和java对象转换成json

*

*@authoryongtree

*@date2008-11-22上午10:47:13

*@version1.0

*/

publicclassJsonUtil {

/**

*从一个JSON对象字符格式中得到一个java对象

*

*@paramjsonString

*@parampojoCalss

*@return

*/

publicstaticObjectgetObject4JsonString(String jsonString, Class pojoCalss) {

Object pojo;

JSONObject jsonObject = JSONObject.fromObject(jsonString);

pojo = JSONObject.toBean(jsonObject, pojoCalss);

returnpojo;

}

/**

*从jsonHASH表达式中获取一个map,改map支持嵌套功能

*

*@paramjsonString

*@return

*/

publicstaticMapgetMap4Json(String jsonString) {

JSONObject jsonObject = JSONObject.fromObject(jsonString);

Iterator keyIter = jsonObject.keys();

String key;

Object value;

Map valueMap =newHashMap();

while(keyIter.hasNext()) {

key = (String) keyIter.next();

value = jsonObject.get(key);

valueMap.put(key, value);

}

returnvalueMap;

}

/**

*从json数组中得到相应java数组

*

*@paramjsonString

*@return

*/

publicstaticObject[]getObjectArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

returnjsonArray.toArray();

}

/**

*从json对象集合表达式中得到一个java对象列表

*

*@paramjsonString

*@parampojoClass

*@return

*/

publicstaticListgetList4Json(String jsonString, Class pojoClass) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

JSONObject jsonObject;

Object pojoValue;

List list =newArrayList();

for(inti = 0; i < jsonArray.size(); i++) {

jsonObject = jsonArray.getJSONObject(i);

pojoValue = JSONObject.toBean(jsonObject, pojoClass);

list.add(pojoValue);

}

returnlist;

}

/**

*从json数组中解析出java字符串数组

*

*@paramjsonString

*@return

*/

publicstaticString[]getStringArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

String[] stringArray =newString[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

stringArray[i] = jsonArray.getString(i);

}

returnstringArray;

}

/**

*从json数组中解析出javaLong型对象数组

*

*@paramjsonString

*@return

*/

publicstaticLong[]getLongArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Long[] longArray =newLong[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

longArray[i] = jsonArray.getLong(i);

}

returnlongArray;

}

/**

*从json数组中解析出java Integer型对象数组

*

*@paramjsonString

*@return

*/

publicstaticInteger[]getIntegerArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Integer[] integerArray =newInteger[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

integerArray[i] = jsonArray.getInt(i);

}

returnintegerArray;

}

/**

*从json数组中解析出java Date型对象数组,使用本方法必须保证

*

*@paramjsonString

*@return

*@throwsParseException

*/

publicstaticDate[]getDateArray4Json(String jsonString, String DataFormat)

throwsParseException {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Date[] dateArray =newDate[jsonArray.size()];

String dateString;

Date date;

for(inti = 0; i < jsonArray.size(); i++) {

dateString = jsonArray.getString(i);

date = DateUtil.parseDate(dateString, DataFormat);

dateArray[i] = date;

}

returndateArray;

}

/**

*从json数组中解析出java Integer型对象数组

*

*@paramjsonString

*@return

*/

publicstaticDouble[]getDoubleArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Double[] doubleArray =newDouble[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

doubleArray[i] = jsonArray.getDouble(i);

}

returndoubleArray;

}

/**

*将java对象转换成json字符串

*

*@paramjavaObj

*@return

*/

publicstaticStringgetJsonString4JavaPOJO(Object javaObj) {

JSONObject json;

json = JSONObject.fromObject(javaObj);

returnjson.toString();

}

/**

*将java对象转换成json字符串,并设定日期格式

*

*@paramjavaObj

*@paramdataFormat

*@return

*/

publicstaticStringgetJsonString4JavaPOJO(Object javaObj,

String dataFormat) {

JSONObject json;

JsonConfig jsonConfig = configJson(dataFormat);

json = JSONObject.fromObject(javaObj, jsonConfig);

returnjson.toString();

}

/**

* JSON时间解析器具

*

*@paramdatePattern

*@return

*/

publicstaticJsonConfigconfigJson(String datePattern) {

JsonConfig jsonConfig =newJsonConfig();

jsonConfig.setExcludes(newString[] {""});

jsonConfig.setIgnoreDefaultExcludes(false);

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

jsonConfig.registerJsonValueProcessor(Date.class,

newJsonDateValueProcessor(datePattern));

returnjsonConfig;

}

/**

*除去不想生成的字段(特别适合去掉级联的对象)+时间转换

*@paramexcludes除去不想生成的字段

*@paramdatePattern

*@return

*/

publicstaticJsonConfigconfigJson(String[] excludes, String datePattern) {

JsonConfig jsonConfig =newJsonConfig();

jsonConfig.setExcludes(excludes);

jsonConfig.setIgnoreDefaultExcludes(true);

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

jsonConfig.registerJsonValueProcessor(Date.class,

newJsonDateValueProcessor(datePattern));

returnjsonConfig;

}

}

*******************************************************************************************

日期转换

*******************************************************************************************

package com.baiyyy.polabs.util.json;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importnet.sf.json.JsonConfig;

importnet.sf.json.processors.JsonValueProcessor;

/**

*

*@authoryongtree

*@date2008-11-22上午10:54:19

*@version1.0

*/

publicclassJsonDateValueProcessorimplementsJsonValueProcessor {

privateStringformat="yyyy-MM-dd HH:mm:ss";

publicJsonDateValueProcessor() {

}

publicJsonDateValueProcessor(String format) {

this.format= format;

}

publicObjectprocessArrayValue(Object value, JsonConfig jsonConfig) {

String[] obj = {};

if(valueinstanceofDate[]) {

SimpleDateFormat sf =newSimpleDateFormat(format);

Date[] dates = (Date[]) value;

obj =newString[dates.length];

for(inti = 0; i < dates.length; i++) {

obj[i] = sf.format(dates[i]);

}

}

returnobj;

}

publicObjectprocessObjectValue(String key, Object value, JsonConfig jsonConfig) {

if(valueinstanceofDate) {

String str =newSimpleDateFormat(format).format((Date) value);

returnstr;

}

returnvalue ==null?null: value.toString();

}

publicStringgetFormat() {

returnformat;

}

publicvoidsetFormat(String format) {

this.format= format;

}

}

package com.baiyyy.polabs.util.json;

importjava.text.ParseException;

importjava.util.ArrayList;

importjava.util.Date;

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Map;

importnet.sf.json.JSONArray;

importnet.sf.json.JSONObject;

importnet.sf.json.JsonConfig;

importnet.sf.json.util.CycleDetectionStrategy;

/**

*处理json的工具类,负责json数据转换成java对象和java对象转换成json

*

*@authoryongtree

*@date2008-11-22上午10:47:13

*@version1.0

*/

publicclassJsonUtil {

/**

*从一个JSON对象字符格式中得到一个java对象

*

*@paramjsonString

*@parampojoCalss

*@return

*/

publicstaticObjectgetObject4JsonString(String jsonString, Class pojoCalss) {

Object pojo;

JSONObject jsonObject = JSONObject.fromObject(jsonString);

pojo = JSONObject.toBean(jsonObject, pojoCalss);

returnpojo;

}

/**

*从jsonHASH表达式中获取一个map,改map支持嵌套功能

*

*@paramjsonString

*@return

*/

publicstaticMapgetMap4Json(String jsonString) {

JSONObject jsonObject = JSONObject.fromObject(jsonString);

Iterator keyIter = jsonObject.keys();

String key;

Object value;

Map valueMap =newHashMap();

while(keyIter.hasNext()) {

key = (String) keyIter.next();

value = jsonObject.get(key);

valueMap.put(key, value);

}

returnvalueMap;

}

/**

*从json数组中得到相应java数组

*

*@paramjsonString

*@return

*/

publicstaticObject[]getObjectArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

returnjsonArray.toArray();

}

/**

*从json对象集合表达式中得到一个java对象列表

*

*@paramjsonString

*@parampojoClass

*@return

*/

publicstaticListgetList4Json(String jsonString, Class pojoClass) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

JSONObject jsonObject;

Object pojoValue;

List list =newArrayList();

for(inti = 0; i < jsonArray.size(); i++) {

jsonObject = jsonArray.getJSONObject(i);

pojoValue = JSONObject.toBean(jsonObject, pojoClass);

list.add(pojoValue);

}

returnlist;

}

/**

*从json数组中解析出java字符串数组

*

*@paramjsonString

*@return

*/

publicstaticString[]getStringArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

String[] stringArray =newString[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

stringArray[i] = jsonArray.getString(i);

}

returnstringArray;

}

/**

*从json数组中解析出javaLong型对象数组

*

*@paramjsonString

*@return

*/

publicstaticLong[]getLongArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Long[] longArray =newLong[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

longArray[i] = jsonArray.getLong(i);

}

returnlongArray;

}

/**

*从json数组中解析出java Integer型对象数组

*

*@paramjsonString

*@return

*/

publicstaticInteger[]getIntegerArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Integer[] integerArray =newInteger[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

integerArray[i] = jsonArray.getInt(i);

}

returnintegerArray;

}

/**

*从json数组中解析出java Date型对象数组,使用本方法必须保证

*

*@paramjsonString

*@return

*@throwsParseException

*/

publicstaticDate[]getDateArray4Json(String jsonString, String DataFormat)

throwsParseException {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Date[] dateArray =newDate[jsonArray.size()];

String dateString;

Date date;

for(inti = 0; i < jsonArray.size(); i++) {

dateString = jsonArray.getString(i);

date = DateUtil.parseDate(dateString, DataFormat);

dateArray[i] = date;

}

returndateArray;

}

/**

*从json数组中解析出java Integer型对象数组

*

*@paramjsonString

*@return

*/

publicstaticDouble[]getDoubleArray4Json(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Double[] doubleArray =newDouble[jsonArray.size()];

for(inti = 0; i < jsonArray.size(); i++) {

doubleArray[i] = jsonArray.getDouble(i);

}

returndoubleArray;

}

/**

*将java对象转换成json字符串

*

*@paramjavaObj

*@return

*/

publicstaticStringgetJsonString4JavaPOJO(Object javaObj) {

JSONObject json;

json = JSONObject.fromObject(javaObj);

returnjson.toString();

}

/**

*将java对象转换成json字符串,并设定日期格式

*

*@paramjavaObj

*@paramdataFormat

*@return

*/

publicstaticStringgetJsonString4JavaPOJO(Object javaObj,

String dataFormat) {

JSONObject json;

JsonConfig jsonConfig = configJson(dataFormat);

json = JSONObject.fromObject(javaObj, jsonConfig);

returnjson.toString();

}

/**

* JSON时间解析器具

*

*@paramdatePattern

*@return

*/

publicstaticJsonConfigconfigJson(String datePattern) {

JsonConfig jsonConfig =newJsonConfig();

jsonConfig.setExcludes(newString[] {""});

jsonConfig.setIgnoreDefaultExcludes(false);

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

jsonConfig.registerJsonValueProcessor(Date.class,

newJsonDateValueProcessor(datePattern));

returnjsonConfig;

}

/**

*除去不想生成的字段(特别适合去掉级联的对象)+时间转换

*@paramexcludes除去不想生成的字段

*@paramdatePattern

*@return

*/

publicstaticJsonConfigconfigJson(String[] excludes, String datePattern) {

JsonConfig jsonConfig =newJsonConfig();

jsonConfig.setExcludes(excludes);

jsonConfig.setIgnoreDefaultExcludes(true);

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

jsonConfig.registerJsonValueProcessor(Date.class,

newJsonDateValueProcessor(datePattern));

returnjsonConfig;

}

}

*******************************************************************************************

日期转换

*******************************************************************************************

package com.baiyyy.polabs.util.json;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importnet.sf.json.JsonConfig;

importnet.sf.json.processors.JsonValueProcessor;

/**

*

*@authoryongtree

*@date2008-11-22上午10:54:19

*@version1.0

*/

publicclassJsonDateValueProcessorimplementsJsonValueProcessor {

privateStringformat="yyyy-MM-dd HH:mm:ss";

publicJsonDateValueProcessor() {

}

publicJsonDateValueProcessor(String format) {

this.format= format;

}

publicObjectprocessArrayValue(Object value, JsonConfig jsonConfig) {

String[] obj = {};

if(valueinstanceofDate[]) {

SimpleDateFormat sf =newSimpleDateFormat(format);

Date[] dates = (Date[]) value;

obj =newString[dates.length];

for(inti = 0; i < dates.length; i++) {

obj[i] = sf.format(dates[i]);

}

}

returnobj;

}

publicObjectprocessObjectValue(String key, Object value, JsonConfig jsonConfig) {

if(valueinstanceofDate) {

String str =newSimpleDateFormat(format).format((Date) value);

returnstr;

}

returnvalue ==null?null: value.toString();

}

publicStringgetFormat() {

returnformat;

}

publicvoidsetFormat(String format) {

this.format= format;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值