JSON格式如下: {"username":"tom","age":18,"address":[{"province":"上海市"},{"city":"上海市"},{"disrtict":"静安区" }]} 处理后,得到的结果如下: address |province|city|disrtict|username| age package ai.advance.until; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray; public class fastJsonDiff { * 递归读取所有的key * @param jsonObject public static StringBuffer getAllKey(JSONObject jsonObject) { StringBuffer stringBuffer = new StringBuffer(); Iterator <String> keys = jsonObject.keySet().iterator(); // jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); stringBuffer.append(key.toString()).append( "|" ); if (jsonObject.get(key) instanceof JSONObject) { JSONObject innerObject = (JSONObject) jsonObject.get(key); stringBuffer.append(getAllKey(innerObject)); } else if (jsonObject.get(key) instanceof JSONArray) { JSONArray innerObject = (JSONArray) jsonObject.get(key); stringBuffer.append(getAllKey(innerObject)); return stringBuffer; public static StringBuffer getAllKey(JSONArray json1) { StringBuffer stringBuffer = new StringBuffer(); if (json1 != null ) { Iterator i1 = json1.iterator(); while (i1.hasNext()) { Object key = i1.next(); if (key instanceof JSONObject) { JSONObject innerObject = (JSONObject) key; stringBuffer.append(getAllKey(innerObject)); } else if (key instanceof JSONArray) { JSONArray innerObject = (JSONArray) key; stringBuffer.append(getAllKey(innerObject)); } else { return stringBuffer; private final static String st1 = "{\"username\":\"tom\",\"age\":18,\"address\":[{\"province\":\"上海市\"},{\"city\":\"上海市\"},{\"disrtict\":\"静安区\"}]}" ; private final static String st2 = "{username:\"tom\",age:18}" ; public static void main(String[] args) { System.out.println(st1); JSONObject jsonObject1 = JSONObject.parseObject(st1); StringBuffer stb = getAllKey(jsonObject1); System.err.println(stb);