Tips:
JSONFormatter,定义一个toMap方法(将JSONObject转换为Map),一个toList方法(将JSONArray转化为List)。相互之间通过递归调用,实现最终SONObject 和 JSONArray的最终转化
Code:
- package com.cisco.cmse.du.util;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import org.codehaus.jettison.json.JSONArray;
- import org.codehaus.jettison.json.JSONException;
- import org.codehaus.jettison.json.JSONObject;
- public final class JSONFormatter {
- /**
- * JSONObject转为map
- * @param object json对象
- * @return 转化后的Map
- */
- public static Map<String,Object> toMap(JSONObject object){
- Map<String,Object> map = new HashMap<String,Object>();
- for (Iterator<?> it = object.keys(); it.hasNext();) {
- String key = (String)it.next();
- Object value;
- try {
- value = object.get(key);
- if(value instanceof JSONArray) {
- value = toList((JSONArray) value);
- }
- else if(value instanceof JSONObject) {
- value = toMap((JSONObject) value);
- }
- map.put(key,value);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- return map;
- }
- /**
- * JSONArray转为List
- * @param array json数组
- * @return 转化后的List
- */
- public static List<Object> toList(JSONArray array){
- List<Object> list = new ArrayList<Object>();
- for(int i = 0; i < array.length(); i++) {
- Object value;
- try {
- value = array.get(i);
- if(value instanceof JSONArray) {
- value = toList((JSONArray) value);
- }
- else if(value instanceof JSONObject) {
- value = toMap((JSONObject) value);
- }
- list.add(value);
- } catch (JSONException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- return list;
- }
- }
Code: