在json中简单地从root中迭代JSONObject

我试图使用json simple迭代json对象。 我已经看到了你可以从中做一个getJSONObject(“child”)的答案

{ "child": { "something": "value", "something2": "value" } } 

但是,如果我有一些东西呢?

 { "k1":"v1", "k2":"v2", "k3":"v3" } 

并希望迭代该json对象。 这个:

 Iterator iter = jObj.keys(); 

throws:找不到符号符号:方法keys()location:class org.json.simple.JSONObject

假设您的JSON对象保存在文件“simple.json”中,您可以按如下方式迭代属性 – 值对:

 JSONParser parser = new JSONParser(); Object obj = parser.parse(new FileReader("simple.json")); JSONObject jsonObject = (JSONObject) obj; for(Iterator iterator = jsonObject.keySet().iterator(); iterator.hasNext();) { String key = (String) iterator.next(); System.out.println(jsonObject.get(key)); } 

你可以这样做

 String jsonstring = "{ \"child\": { \"something\": \"value\", \"something2\": \"value\" } }"; JSONObject resobj = new JSONObject(jsonstring); Iterator keys = resobj.keys(); while(keys.hasNext() ) { String key = (String)keys.next(); if ( resobj.get(key) instanceof JSONObject ) { JSONObject xx = new JSONObject(resobj.get(key).toString()); Log.d("res1",xx.getString("something")); Log.d("res2",xx.getString("something2")); } }