一个解析Json文件的java实现
Json的应用我不再都说,不过怎么吧一个Json转化为一个 List 或者 map呢?
这是我自己实现的一个小工具可以实现转化
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class JsonToos { private static JsonToos toos; private JsonToos() { }; // 单例 public static JsonToos getInstance() { if (toos == null) toos = new JsonToos(); return toos; } // 调用入口 public Object Json2Obj(String jsonText) { if (jsonText.startsWith("{") && jsonText.endsWith("}")) { return Json2Map(jsonText); } else if (jsonText.startsWith("[") && jsonText.endsWith("]")) { return Json2List(jsonText); } return null; } // Json to map private Map Json2Map(String jsonText) { JSONObject json = JSONObject.fromObject(jsonText);// .fromObject(m); Iterator keys = json.keys(); Map map = new HashMap(); while (keys.hasNext()) { String key = (String) keys.next(); String value = json.get(key).toString(); if (value.startsWith("{") && value.endsWith("}")) { map.put(key, Json2Map(value)); } else if (value.startsWith("[") && value.endsWith("]")) { map.put(key, Json2List(jsonText)); } else { map.put(key, value); } } return map; } // Json to List private List Json2List(String jsonText) { List lst = new ArrayList(); if (jsonText.startsWith("{") && jsonText.endsWith("}")) { lst.add(Json2Map(jsonText)); } else if (jsonText.startsWith("[") && jsonText.endsWith("]")) { String[] str = jsonText.substring(1, jsonText.length() - 1).split( "\",\""); for (int i = 0; i < str.length; i++) lst.add(str[i]); } else { lst.add(jsonText); } return lst; } public String Map2Json(Map m) { JSONObject json1 = JSONObject.fromObject(m); return json1.toString(); } }
不过在使用的时候需要使用外部的jar包!
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-lang.jar
commons-logging.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
可以在这里下载