首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在json simple中从根目录遍历JSONObject

在json simple中从根目录遍历JSONObject
EN

Stack Overflow用户
提问于 2014-06-24 01:36:36
回答 4查看 90.8K关注 0票数 28

我正在尝试使用json simple遍历json对象。我已经看到了你可以在哪里做getJSONObject("child")的答案

代码语言:javascript
复制
{ "child": { "something": "value", "something2": "value" } }

但是如果我只有一些东西

代码语言:javascript
复制
{
"k1":"v1",
"k2":"v2",
"k3":"v3"
} 

并希望遍历该json对象。这一点:

代码语言:javascript
复制
Iterator iter = jObj.keys();

抛出:

代码语言:javascript
复制
cannot find symbol
symbol  : method keys()
location: class org.json.simple.JSONObject
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-24 02:10:12

假设您的JSON对象保存在文件"simple.json“中,您可以迭代属性-值对,如下所示:

代码语言:javascript
复制
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));
}
票数 62
EN

Stack Overflow用户

发布于 2015-06-08 20:43:56

你可以这样做

代码语言:javascript
复制
String jsonstring = "{ \"child\": { \"something\": \"value\", \"something2\": \"value\" } }";
JSONObject resobj = new JSONObject(jsonstring);
Iterator<?> keys = resobj.keys().iterator();
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"));
    }
}
票数 6
EN

Stack Overflow用户

发布于 2019-06-26 15:22:21

在Java 8中,我们可以使用lambdas

代码语言:javascript
复制
void handleJSONObject(JSONObject jsonObject) {
jsonObject.keys().forEachRemaining(key -> {
    Object value = jsonObject.get(key);
    logger.info("Key: {0}\tValue: {1}", key, value);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24371957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档