获取到json类型的字符串需要解析时,一种方式是将json字符串通过fastjson转换成一个具体的对象,有时候遇到一些特殊情况json字符串不固定时,上面那种方式不是很方便的情况下,可以直接将json字符串转换成JSONObject对象,然后去解析。
1 public static String get(JSONObject object,String key) 2 { 3 if(object.containsKey(key)) 4 { 5 return object.get(key).toString(); 6 } 7 for(String k:object.keySet()) 8 { 9 if(!(object.get(k) instanceof String) && !(object.get(k) instanceof Integer)) 10 { 11 try 12 { 13 JSONObject o=object.getJSONObject(k); 14 String value=get(o,key); 15 if(!value.equals("")) 16 { 17 return value; 18 } 19 }catch (ClassCastException e) 20 { 21 JSONArray array=object.getJSONArray(k); 22 for(int i=0;i<array.size();i++) 23 { 24 JSONObject o=array.getJSONObject(i); 25 String value=get(o,key); 26 if(!value.equals("")) 27 { 28 return value; 29 } 30 } 31 } 32 } 33 34 } 35 36 return ""; 37 }
不过这样对于要查找的key的大小写是敏感的,不知道要怎么做才能使大小写不敏感呢