java处理JSON格式数据的通用类.docx
- 文档编号:4322879
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:8
- 大小:16.68KB
java处理JSON格式数据的通用类.docx
《java处理JSON格式数据的通用类.docx》由会员分享,可在线阅读,更多相关《java处理JSON格式数据的通用类.docx(8页珍藏版)》请在冰豆网上搜索。
java处理JSON格式数据的通用类
java处理JSON格式数据的通用类-每天进步一点点-我的搜狐
一个java处理JSON格式数据的通用类
分类:
JSON
2013-04-2718:
00阅读(19)评论(0)
原始的json方法
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
JSONObjectjson=newJSONObject();//用于存放最后返回的json变量
JSONArrayjsonal=newJSONArray();//用于存放json的列表
JSONObjectjsonobj=newJSONObject();//用于存放列表中的单条数据
try{
for(inti=0;i<10;i++){
//把列表中的每一列的每个值赋给jsonobj
jsonobj.put("id","编号");
jsonobj.put("title","标题");
jsonobj.put("author","作者");
jsonobj.put("time","时间");
//把已经赋值过的jsonobj(即单条数据)放到列表里
jsonal.add(jsonobj);
}
json.put("list",jsonal);//把这个列表放到json里面用于最后返回输出
}catch(Exceptione){
e.printStackTrace();
}
response.getWriter().write(json.toString());//把json值输出返回到页面上这里是字符串的形式我前台是用js接收来解析的
别人写的工具类:
进入需要在项目中用java处理json格式的数据,因此封装了一个class,现将这个class共享出来和大家分享
/**
* Copyright (c) linkwise 2007-2009 corporation.
* All rights reserved
*/
package mon.util;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
import mon.util.DateUtil;
import mon.util.jsonutil.DateJsonValueProcessor;
/**
* @author fx19800215@"> robert.feng
*
*/
public class JsonUtil {
/**
* 从一个JSON 对象字符格式中得到一个java对象
* @param jsonString
* @param pojoCalss
* @return
*/
public static Object getObject4JsonString(String jsonString,Class pojoCalss){
Object pojo;
JSONObject jsonObject = JSONObject.fromObject( jsonString );
pojo = JSONObject.toBean(jsonObject,pojoCalss);
return pojo;
}
/**
* 从json HASH表达式中获取一个map,改map支持嵌套功能
* @param jsonString
* @return
*/
public static Map getMap4Json(String jsonString){
JSONObject jsonObject = JSONObject.fromObject( jsonString );
Iterator keyIter = jsonObject.keys();
String key;
Object value;
Map valueMap = new HashMap();
while( keyIter.hasNext())
{
key = (String)keyIter.next();
value = jsonObject.get(key);
valueMap.put(key, value);
}
return valueMap;
}
/**
* 从json数组中得到相应java数组
* @param jsonString
* @return
*/
public static Object[] getObjectArray4Json(String jsonString){
JSONArray jsonArray = JSONArray.fromObject(jsonString);
return jsonArray.toArray();
}
/**
* 从json对象集合表达式中得到一个java对象列表
* @param jsonString
* @param pojoClass
* @return
*/
public static List getList4Json(String jsonString, Class pojoClass){
JSONArray jsonArray = JSONArray.fromObject(jsonString);
JSONObject jsonObject;
Object pojoValue;
List list = new ArrayList();
for ( int i = 0 ; i jsonObject = jsonArray.getJSONObject(i); pojoValue = JSONObject.toBean(jsonObject,pojoClass); list.add(pojoValue); } return list; } /** * 从json数组中解析出java字符串数组 * @param jsonString * @return */ public static String[] getStringArray4Json(String jsonString){ JSONArray jsonArray = JSONArray.fromObject(jsonString); String[] stringArray = new String[jsonArray.size()]; for( int i = 0 ; i stringArray[i] = jsonArray.getString(i); } return stringArray; } /** * 从json数组中解析出javaLong型对象数组 * @param jsonString * @return */ public static Long[] getLongArray4Json(String jsonString){ JSONArray jsonArray = JSONArray.fromObject(jsonString); Long[] longArray = new Long[jsonArray.size()]; for( int i = 0 ; i longArray[i] = jsonArray.getLong(i); } return longArray; } /** * 从json数组中解析出java Integer型对象数组 * @param jsonString * @return */ public static Integer[] getIntegerArray4Json(String jsonString){ JSONArray jsonArray = JSONArray.fromObject(jsonString); Integer[] integerArray = new Integer[jsonArray.size()]; for( int i = 0 ; i integerArray[i] = jsonArray.getInt(i); } return integerArray; } /** * 从json数组中解析出java Date 型对象数组,使用本方法必须保证 * @param jsonString * @return */ public static Date[] getDateArray4Json(String jsonString,String DataFormat){ JSONArray jsonArray = JSONArray.fromObject(jsonString); Date[] dateArray = new Date[jsonArray.size()]; String dateString; Date date; for( int i = 0 ; i dateString = jsonArray.getString(i); date = DateUtil.stringToDate(dateString, DataFormat); dateArray[i] = date; } return dateArray; } /** * 从json数组中解析出java Integer型对象数组 * @param jsonString * @return */ public static Double[] getDoubleArray4Json(String jsonString){ JSONArray jsonArray = JSONArray.fromObject(jsonString); Double[] doubleArray = new Double[jsonArray.size()]; for( int i = 0 ; i doubleArray[i] = jsonArray.getDouble(i); } return doubleArray; } /** * 将java对象转换成json字符串 * @param javaObj * @return */ public static String getJsonString4JavaPOJO(Object javaObj){ JSONObject json; json = JSONObject.fromObject(javaObj); return json.toString(); } /** * 将java对象转换成json字符串,并设定日期格式 * @param javaObj * @param dataFormat * @return */ public static String getJsonString4JavaPOJO(Object javaObj , String dataFormat){ JSONObject json; JsonConfig jsonConfig = configJson(dataFormat); json = JSONObject.fromObject(javaObj,jsonConfig); return json.toString(); } /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 } /** * 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; } } /** * linkwise */ package mon.util.jsonutil; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; /** * @author fx19800215@"> robert.feng * */ public class DateJsonValueProcessor implements JsonValueProcessor { public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd"; private DateFormat dateFormat; /** * 构造方法. * * @param datePattern 日期格式 */ public DateJsonValueProcessor(String datePattern) { if( null == datePattern ) dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN); else dateFormat = new SimpleDateFormat(datePattern); } /* (非 Javadoc) * @see net.sf.json.processors.JsonValueProcessor#processArrayValue(java.lang.Object, net.sf.json.JsonConfig) */ public Object processArrayValue(Object arg0, JsonConfig arg1) { // TODO 自动生成方法存根 return process(arg0); } /* (非 Javadoc) * @see net.sf.json.processors.JsonValueProcessor#processObjectValue(java.lang.String, java.lang.Object, net.sf.json.JsonConfig) */ public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) { // TODO 自动生成方法存根 return process(arg1); } private Object process(Object value) { return dateFormat.format((Date) value); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 处理 JSON 格式 数据 通用