Java用JSONObject-lib来解析json串
直接贴代码:(所需jar包:json-lib.jar,可能会关联一些其它的jar包,请自行搜索.) import java.util.ArrayList; 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; public class JsonParser { @SuppressWarnings("rawtypes") public void test() { Map m = this.testJson("jsonString"); System.out.println(((Map) ((List) m.get("test")).get(0)).get("test_title")); } @SuppressWarnings({ "rawtypes", "unchecked" }) public Map testJson(String str) { JSONObject json = JSONObject.fromObject(str); Iterator<?> it = json.keySet().iterator(); Map map = new HashMap(); while (it.hasNext()) { String key = (String) it.next(); String value = json.getString(key); if (this.isString(value)) { map.put(key, value); } if (this.isJson(value)) { map.put(key, this.testJson(value)); } if (this.isJsonArray(value)) { map.put(key, this.testJsonArray(value)); } } return map; } @SuppressWarnings({ "unchecked", "rawtypes" }) public List testJsonArray(String str) { JSONArray jsonArr = JSONArray.fromObject(str); List list = new ArrayList(); for (Object json : jsonArr) { String jsonStr = json.toString(); if(this.isString(jsonStr)){ list.add(jsonStr); } if(this.isJson(jsonStr)){ list.add(this.testJson(jsonStr.toString())); } if(this.isJsonArray(jsonStr)){ list.add(this.testJsonArray(jsonStr.toString())); } } return list; } public boolean isJson(String s) { boolean flag = true; try { JSONObject.fromObject(s); } catch (Exception e) { flag = false; } return flag; } public boolean isJsonArray(String s) { boolean flag = true; try { JSONArray.fromObject(s); } catch (Exception e) { flag = false; } return flag; } public boolean isString(String s) { return !this.isJson(s) && !this.isJsonArray(s); } public static void main(String[] args) { JsonParser tj = new JsonParser(); tj.test(); } }
点亮测试人生!QQ:408129370
百度阅读电子书地址:http://yuedu.baidu.com/ebook/f6dbb2a2f01dc281e53af0f3
讨论QQ群:536192476
个人公众号:
百度阅读电子书地址:http://yuedu.baidu.com/ebook/f6dbb2a2f01dc281e53af0f3
讨论QQ群:536192476
个人公众号: