JSONFormatter(JSONObject转成Map, JSONArray转成List, 中间递归调用类)
@H_
403_0@
JSONFormatter,定义一个toMap
方法(将JSONObject转换为Map),一个toList
方法(将JSONArray转化为List)。相互之间通过递归
调用,实现最终SONObject 和 JSONArray的最终转化
@H_
403_0@
Code:
@H_
403_0@
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;
}
}