jsonObject的使用
来源:互联网 发布:check windows version 编辑:程序博客网 时间:2024/05/21 09:28
在项目中难免会用java处理json格式的数据,因此封装了一个JSONUtil工具类。
JSONUtil.java
- package com.bijian.json.study;
- 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;
- 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 < jsonArray.size(); 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 < jsonArray.size(); 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 < jsonArray.size(); 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 < jsonArray.size(); 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 < 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[] getDoubleArray4Json(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 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();
- }
- /**
- * 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;
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- Object obj01 = getObject4JsonString("{'name':'bijian','age':'30','phone':'13899998888'}", TestObject.class);
- System.out.println(obj01);
- Object[] obj = getObjectArray4Json("['json','is','easy']");
- for(Object o: obj) {
- System.out.println(o);
- }
- Map map = getMap4Json("{'json':'001','is':'002','easy':'003'}");
- System.out.println(map);
- }
- }
DateUtil.java
- package com.bijian.json.study;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class DateUtil {
- public static Date stringToDate(String dateString, String dataFormat) {
- SimpleDateFormat sdf = new SimpleDateFormat(dataFormat);
- Date date = null;
- try {
- date = sdf.parse(dateString);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return date;
- }
- }
DateJsonValueProcessor.java
- package com.bijian.json.study;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import net.sf.json.JsonConfig;
- import net.sf.json.processors.JsonValueProcessor;
- 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) {
- return process(arg1);
- }
- private Object process(Object value) {
- return dateFormat.format((Date) value);
- }
- }
TestObject.java
- package com.bijian.json.study;
- public class TestObject {
- private String name;
- private int age;
- private String phone;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getPhone() {
- return phone;
- }
- public void setPhone(String phone) {
- this.phone = phone;
- }
- }
JSONUtil.java中的main方法运行结果:
- com.bijian.json.study.TestObject@56f631
- json
- is
- easy
- {is=002, easy=003, json=001}
0 0
- jsonObject的使用
- jsonObject的使用
- jsonObject的使用
- Struts2 JSONObject的使用
- Android JSONObject的使用
- JSONObject 的简单使用
- JsonObject的使用
- JSONObject的使用
- jsonObject、jsonArray的使用
- JSONObject 的使用
- JSONArray和JSONObject的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- UVa10099_The Tourist Guide(最短路/floyd)(小白书图论专题)
- linux内核文档翻译 位置:Documentation/arm/Setup
- hdu 2147 kiki's game, 入门基础博弈
- 分别用普通过程,面向对象过程,和继承方法实现拖拽效果
- struct linger 用法
- jsonObject的使用
- 2.2.5 Remove Duplicates from Sorted List II
- [转]Python Profile 工具性能分析
- 条款32:确定你的public继承塑模出is-a关系
- POJ-3171-Cleaning Shifts
- c++中判断指针类型对象
- spoj 220. Relevant Phrases of Annihilation
- 123
- yaffs2 源码错误 too few arguments to function 'yaffs_flush_file' 2014.08.22