您的位置:首页 > Web前端 > JavaScript

Json和map相互转换工具类

2015-10-03 11:15 871 查看
在项目开发的时候碰到了别人写的一个工具类,挺好的就记录了下来。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.log4j.Logger;

public class JsonToMapUtils {
/** 日志文件生成器 */
private static Logger log = Logger.getLogger(JsonToMapUtils.class);
@SuppressWarnings("unchecked")
public static Map<String, Object> parseJsonToMap(String jsonStr){
Map<String, Object> map = new HashMap<String, Object>();
//最外层解析
JSONObject json = JSONObject.fromObject(jsonStr);
for(Object k : json.keySet()){
Object v = json.get(k);
//如果内层还是数组的话,继续解析
if(v instanceof JSONArray){
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Iterator<JSONObject> it = ((JSONArray)v).iterator();
while(it.hasNext()){
JSONObject json2 = it.next();
list.add(parseJsonToMap(json2.toString()));
}
map.put(k.toString(), list);
log.info("k.toString()="+k.toString()+"list="+list);
} else {
map.put(k.toString(), v);
log.info("k.toString()="+k.toString()+"v="+v);
}
}
return map;
}

public static String mapToJson(Map<String, String> map) {
Set<String> keys = map.keySet();
String key = "";
String value = "";
StringBuffer jsonBuffer = new StringBuffer();
jsonBuffer.append("{");
for (Iterator<String> it = keys.iterator(); it.hasNext();) {
key = (String) it.next();
value = map.get(key);
jsonBuffer.append(key + ":" +"\""+ value+"\"");
if (it.hasNext()) {
jsonBuffer.append(",");
}
}
jsonBuffer.append("}");
return jsonBuffer.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: