json对象在java和javascript中的遍历

来源:互联网 发布:淘宝店铺的链接在哪里 编辑:程序博客网 时间:2024/05/21 15:49

碰到这样的一个问题:在一个json对象中,例如jsonStr这个字符串,当我不知道people这个key值(或者people是一个不定的key)的时候,如何获取name属相的value?

var jsonStr='{"wp":"123","people":{"name":"test","age":20,"sex":"boy"},"animal":"pigs"}';

上代码
js中获取:

var json=JSON.parse(jsonStr);console.log(jsonTraversal(json,"name")); function jsonTraversal(json,WhatKey){                    for(var p in json){                        if(json[p] instanceof Object){                            return jsonTraversal(json[p],WhatKey)                        }else{                            if(p==WhatKey){                                return json[p];                            }                        }                    }                }

java中获取:
针对低版本的

JSONObject obj=JSONObject.fromObject(jsonStr);
System.out.println(decodeJSONObject2(obj,whatkey));

//针对低版本的json-libpublic static Object decodeJSONObject2(JSONObject json,String whatkey){          Iterator<String> keys=json.keys();          JSONObject jo=null;          Object o = null;          String key;          while(keys.hasNext()){            key=keys.next();              o=json.get(key);              if(o instanceof JSONObject){                  jo=(JSONObject)o;                  if(jo.keys().hasNext()){                return decodeJSONObject2(jo,whatkey);                  }            }else{             if(key.equals(whatkey)){            break;            }            }         }return o;      }       //针对高版本的json-lib     public static Object decodeJSONObject(JSONObject json,String WhatKey){        Iterator<String> keys=json.keys();          JSONObject jo=null;          Object o = null;          String key;          while(keys.hasNext()){              key=keys.next();              o=json.get(key);              if(o instanceof JSONObject){                  jo=(JSONObject)o;                  if(jo.keySet().size()>0){                      return decodeJSONObject(jo,WhatKey);                  }            }else{              if(key.equals(WhatKey)){            break;            }            }          }          return o;    } 
0 0
原创粉丝点击