在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")); } }