【问题标题】:How can I access each key and value in JSONArray如何访问 JSONArray 中的每个键和值
【发布时间】:2015-06-24 03:47:24
【问题描述】:

我有一个如下的 JSONArray。如何按顺序访问其中的每个键和值。

JSONArray = [{"a":1},{"b":2,"c":3},{"d":4},{"e":5,"f":7}]

【问题讨论】:

  • 这真的是一个 Java 问题,还是您在问如何在 javascript 中迭代所有这些?
  • 不,我想用 Java 而不是 JS 进行迭代...我知道区别

标签: java json iterator jsonobject


【解决方案1】:

你可以试试下面的代码:

JSONArray jsonArray = new JSONArray("[{\"a\":1},{\"b\":2,\"c\":3},{\"d\":4},{\"e\":5,\"f\":7}]");
for (int i = 0; i < jsonArray.length(); i++) {
    JSONObject json = jsonArray.getJSONObject(i);
    Iterator<String> keys = json.keys();

    while (keys.hasNext()) {
        String key = keys.next();
        System.out.println("Key :" + key + "  Value :" + json.get(key));
    }

}

【讨论】:

    【解决方案2】:
    try below code for nested Json .     
     main method here {
         String res = "" ;// your json here 
          ObjectMapper o = new ObjectMapper();
               Object m = o.readValue(res, Object.class);
               printKeys(m);
    
        }
    
        public void printKeys(Object obey)
              {
    
                  if ( obey instanceof ArrayList)
                  {
                      @SuppressWarnings("unchecked")
                    List<Object> list = (List<Object>)obey;
                      for( Object ob : list )
                      {
                         printKeys(ob);
                      }
    
                  }
                  else if ( obey instanceof Map)
                  {
                     Map<String, Object> m1 = (Map<String,Object>)obey;
                     for ( String key : m1.keySet() ){
                         System.out.println("KEY :"+ key);
                         printKeys(m1.get(key));
                  }
              }
    
              }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2015-07-03
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多