java map转json字符串,json对象转java对象
java处理JSON格式数据的通用类
因为要进入项目,必须在java中处理json格式的数据,所以封装class并与大家共享此class/* * * copyright (c ) linkwise 2007-2009公司
* all rights reserved */package com.linghui.com mon.util; 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; import net.SF.JSON.util.cycledetectionstrategy; import com.linghui.com mon.util.date util; import com.linghui.com mon.util.JSON util.datejsonvalueprocessor; /***@authorrobert.feng
*/publicclassjsonutil {/* * *从JSON对象的字符格式中检索java对象
*@paramjsonString
*@parampojoCalss
* @ return */publicstaticobjectgetobject4JSON string (stringjsonstring,ClasspojoCalss ) {
对象POJO;
jonobjectjsonobject=JSON object.from object (JSON字符串);
POJO=JSON object.to bean (JSON object,pojoCalss ); 返回坡焦;
}/* * *从JSON hash表达式中检索map,并将其更改为支持嵌套功能
*@paramjsonString
* @ return */publicstaticmapgetmap4JSON (stringjsonstring )。
jonobjectjsonobject=JSON object.from object (JSON字符串);
iteratorkeyiter=JSON object.keys (;
字符串密钥;
对象值;
MapvalueMap=newHashMap (; while(keyiter.Hasnext ) )
{
key=(字符串) keyIter.next );
value=JSONobject.get(key );
value map.put (密钥,value );
}returnvalueMap;
}/* * *从JSON数组中获取对应的java数组
*@paramjsonString
* @ return */public static object [ ] getobject array4JSON (stringjsonstring ) {
jsonarrayjsonarray=JSON array.from object (JSON字符串; returnjsonArray.toArray (;
}/* * *从JSON对象集合表达式中获取java对象的列表
*@paramjsonString
*@parampojoClass
* @ return */publicstaticlistgetlist4JSON (stringjsonstring,ClasspojoClass ) {
jsonarrayjsonarray=JSON array.from object (JSON字符串;
JSONObjectjsonObject;
对象pojovalue;
列表列表=new ArrayList (; for(inti=0; I
JSON object=JSON array.getjsonobject (I;
POJO value=JSON object.to bean (JSON object,pojoClass );
list.add(Pojovalue );
}返回列表;
}/* * *从JSON数组中分析java字符串数组
*@paramjsonString
* @ return */public static string [ ] getstring array4JSON (stringjsonstring ) {
JSONArrayjsonArray=JSO
NArray.fromObject(jsonString);String[] stringArray=newString[jsonArray.size()];for(inti=0; 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
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
integerArray[i]=jsonArray.getInt(i);
}returnintegerArray;
}/*** 从json数组中解析出java Date 型对象数组,使用本方法必须保证
*@paramjsonString
*@return*/publicstaticDate[] getDateArray4Json(String jsonString,String DataFormat){
JSONArray jsonArray=JSONArray.fromObject(jsonString);
Date[] dateArray=newDate[jsonArray.size()];
String dateString;
Date date;for(inti=0; i
dateString=jsonArray.getString(i);
date=DateUtil.stringToDate(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
doubleArray[i]=jsonArray.getDouble(i);
}returndoubleArray;
}/*** 将java对象转换成json字符串
*@paramjavaObj
*@return*/publicstaticString getJsonString4JavaPOJO(Object javaObj){
JSONObject json;
json=JSONObject.fromObject(javaObj);returnjson.toString();
}/*** 将java对象转换成json字符串,并设定日期格式
*@paramjavaObj
*@paramdataFormat
*@return*/publicstaticString getJsonString4JavaPOJO(Object javaObj , String dataFormat){
JSONObject json;
JsonConfig jsonConfig=configJson(dataFormat);
json=JSONObject.fromObject(javaObj,jsonConfig);returnjson.toString();
}/***@paramargs*/publicstaticvoidmain(String[] args) {//TODO 自动生成方法存根}/*** JSON 时间解析器具
*@paramdatePattern
*@return*/publicstaticJsonConfig configJson(String datePattern) {
JsonConfig jsonConfig=newJsonConfig();
jsonConfig.setExcludes(newString[]{""});
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.registerJsonValueProcessor(Date.class,newDateJsonValueProcessor(datePattern));returnjsonConfig;
}/***@paramexcludes
*@paramdatePattern
*@return*/publicstaticJsonConfig configJson(String[] excludes, String datePattern) {
JsonConfig jsonConfig=newJsonConfig();
jsonConfig.setExcludes(excludes);
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.registerJsonValueProcessor(Date.class,newDateJsonValueProcessor(datePattern));returnjsonConfig;
}
}/*** linkwise*/packagecom.linghui.common.util.jsonutil;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importnet.sf.json.JsonConfig;importnet.sf.json.processors.JsonValueProcessor;/***@authorrobert.feng
**/publicclassDateJsonValueProcessorimplementsJsonValueProcessor {publicstaticfinalString DEFAULT_DATE_PATTERN="yyyy-MM-dd";privateDateFormat dateFormat;/*** 构造方法.
*@paramdatePattern 日期格式*/publicDateJsonValueProcessor(String datePattern) {if(null==datePattern )
dateFormat=newSimpleDateFormat(DEFAULT_DATE_PATTERN);elsedateFormat=newSimpleDateFormat(datePattern);
}/*(非 Javadoc)
* @see net.sf.json.processors.JsonValueProcessor#processArrayValue(java.lang.Object, net.sf.json.JsonConfig)*/publicObject processArrayValue(Object arg0, JsonConfig arg1) {//TODO 自动生成方法存根returnprocess(arg0);
}/*(非 Javadoc)
* @see net.sf.json.processors.JsonValueProcessor#processObjectValue(java.lang.String, java.lang.Object, net.sf.json.JsonConfig)*/publicObject processObjectValue(String arg0, Object arg1, JsonConfig arg2) {//TODO 自动生成方法存根returnprocess(arg1);
}privateObject process(Object value) {returndateFormat.format((Date) value);
}
}