Iterate through JSONObject from root in json simple

后端 未结 3 1763
梦谈多话
梦谈多话 2020-12-13 04:52

I am trying to iterate over a json object using json simple. I have seen answers where you can do a getJSONObject(\"child\") from

{ \"child\":          


        
相关标签:
3条回答
  • 2020-12-13 04:58

    In Java 8 we can use lambdas

    void handleJSONObject(JSONObject jsonObject) {
    jsonObject.keys().forEachRemaining(key -> {
        Object value = jsonObject.get(key);
        logger.info("Key: {0}\tValue: {1}", key, value);
      }
    }
    
    0 讨论(0)
  • 2020-12-13 05:01

    You can do like this

    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"));
        }
    }
    
    0 讨论(0)
  • 2020-12-13 05:09

    Assuming your JSON object is saved in a file "simple.json", you can iterate over the attribute-value pairs as follows:

    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));
    }
    
    0 讨论(0)
提交回复
热议问题