今天需要遍历一下json,但是只查到了遍历一层json的文章,满足不了多层级的json遍历。所以自己写一下,用fastJson处理。
public class JsonLoop { public static String json = "{\"TITLE\":\"Json Title\",\"FORM\":{\"USERNAME\":\"Rick and Morty\"},\"ARRAY\":[{\"FIRST\":\"Rick\"},{\"LAST\":\"Morty\"}]}"; public static void jsonLoop(Object object) { if(object instanceof JSONObject) { JSONObject jsonObject = (JSONObject) object; for (Map.Entry entry: jsonObject.entrySet()) { Object o = entry.getValue(); if(o instanceof String) { System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue()); } else { jsonLoop(o); } } } if(object instanceof JSONArray) { JSONArray jsonArray = (JSONArray) object; for(int i = 0; i < jsonArray.size(); i ++) { jsonLoop(jsonArray.get(i)); } } } public static void main(String[] args) { JSONObject jsonObject = JSON.parseObject(json); jsonLoop(jsonObject); } }
{
}
key:FIRST,value:Rick
key:LAST,value:Morty
key:USERNAME,value:Rick and Morty
key:TITLE,value:Json Title