jsonObject的使用
进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享 /***//** *Copyright(c)linkwise2007-2009corporation. *Allrightsreserved */ packagecom.linghui.common.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; importnet.sf.json.util.CycleDetectionStrategy; importcom.linghui.common.util.DateUtil; importcom.linghui.common.util.jsonutil.DateJsonValueProcessor; /***//** *@author</br><ahref="mailto:fx19800215@163.com">robert.feng</a> * */ publicclassJsonUtil...{ /***//** *从一个JSON对象字符格式中得到一个java对象 *@paramjsonString *@parampojoCalss *@return */ publicstaticObjectgetObject4JsonString(StringjsonString,ClasspojoCalss)...{ Objectpojo; JSONObjectjsonObject=JSONObject.fromObject(jsonString); pojo=JSONObject.toBean(jsonObject,pojoCalss); returnpojo; } /***//** *从jsonHASH表达式中获取一个map,改map支持嵌套功能 *@paramjsonString *@return */ publicstaticMapgetMap4Json(StringjsonString)...{ JSONObjectjsonObject=JSONObject.fromObject(jsonString); IteratorkeyIter=jsonObject.keys(); Stringkey; Objectvalue; MapvalueMap=newHashMap(); while(keyIter.hasNext()) ...{ key=(String)keyIter.next(); value=jsonObject.get(key); valueMap.put(key,value); } returnvalueMap; } /***//** *从json数组中得到相应java数组 *@paramjsonString *@return */ publicstaticObject[]getObjectArray4Json(StringjsonString)...{ JSONArrayjsonArray=JSONArray.fromObject(jsonString); returnjsonArray.toArray(); } /***//** *从json对象集合表达式中得到一个java对象列表 *@paramjsonString *@parampojoClass *@return */ publicstaticListgetList4Json(StringjsonString,ClasspojoClass)...{ JSONArrayjsonArray=JSONArray.fromObject(jsonString); JSONObjectjsonObject; ObjectpojoValue; Listlist=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(StringjsonString)...{ JSONArrayjsonArray=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(StringjsonString)...{ JSONArrayjsonArray=JSONArray.fromObject(jsonString); Long[]longArray=newLong[jsonArray.size()]; for(inti=0;i<jsonArray.size();i++)...{ longArray[i]=jsonArray.getLong(i); } returnlongArray; } /***//** *从json数组中解析出javaInteger型对象数组 *@paramjsonString *@return */ publicstaticInteger[]getIntegerArray4Json(StringjsonString)...{ JSONArrayjsonArray=JSONArray.fromObject(jsonString); Integer[]integerArray=newInteger[jsonArray.size()]; for(inti=0;i<jsonArray.size();i++)...{ integerArray[i]=jsonArray.getInt(i); } returnintegerArray; } /***//** *从json数组中解析出javaDate型对象数组,使用本方法必须保证 *@paramjsonString *@return */ publicstaticDate[]getDateArray4Json(StringjsonString,StringDataFormat)...{ JSONArrayjsonArray=JSONArray.fromObject(jsonString); Date[]dateArray=newDate[jsonArray.size()]; StringdateString; Datedate; for(inti=0;i<jsonArray.size();i++)...{ dateString=jsonArray.getString(i); date=DateUtil.stringToDate(dateString,DataFormat); dateArray[i]=date; } returndateArray; } /***//** *从json数组中解析出javaInteger型对象数组 *@paramjsonString *@return */ publicstaticDouble[]getDoubleArray4Json(StringjsonString)...{ JSONArrayjsonArray=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(ObjectjavaObj)...{ JSONObjectjson; json=JSONObject.fromObject(javaObj); returnjson.toString(); } /***//** *将java对象转换成json字符串,并设定日期格式 *@paramjavaObj *@paramdataFormat *@return */ publicstaticStringgetJsonString4JavaPOJO(ObjectjavaObj,StringdataFormat)...{ JSONObjectjson; JsonConfigjsonConfig=configJson(dataFormat); json=JSONObject.fromObject(javaObj,jsonConfig); returnjson.toString(); } /***//** *@paramargs */ publicstaticvoidmain(String[]args)...{ //TODO自动生成方法存根 } /***//** *JSON时间解析器具 *@paramdatePattern *@return */ publicstaticJsonConfigconfigJson(StringdatePattern)...{ JsonConfigjsonConfig=newJsonConfig(); jsonConfig.setExcludes(newString[]...{""}); jsonConfig.setIgnoreDefaultExcludes(false); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); jsonConfig.registerJsonValueProcessor(Date.class, newDateJsonValueProcessor(datePattern)); returnjsonConfig; } /***//** * *@paramexcludes *@paramdatePattern *@return */ publicstaticJsonConfigconfigJson(String[]excludes, StringdatePattern)...{ JsonConfigjsonConfig=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; /***//** *@author</br><ahref="mailto:fx19800215@163.com">robert.feng</a> * */ publicclassDateJsonValueProcessorimplementsJsonValueProcessor...{ publicstaticfinalStringDEFAULT_DATE_PATTERN="yyyy-MM-dd"; privateDateFormatdateFormat; /***//** *构造方法. * *@paramdatePattern日期格式 */ publicDateJsonValueProcessor(StringdatePattern)...{ if(null==datePattern) dateFormat=newSimpleDateFormat(DEFAULT_DATE_PATTERN); else dateFormat=newSimpleDateFormat(datePattern); } /**//*(非Javadoc) *@seenet.sf.json.processors.JsonValueProcessor#processArrayValue(java.lang.Object,net.sf.json.JsonConfig) */ publicObjectprocessArrayValue(Objectarg0,JsonConfigarg1)...{ //TODO自动生成方法存根 returnprocess(arg0); } /**//*(非Javadoc) *@seenet.sf.json.processors.JsonValueProcessor#processObjectValue(java.lang.String,java.lang.Object,net.sf.json.JsonConfig) */ publicObjectprocessObjectValue(Stringarg0,Objectarg1,JsonConfigarg2)...{ //TODO自动生成方法存根 returnprocess(arg1); } privateObjectprocess(Objectvalue)...{ returndateFormat.format((Date)value); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |