【问题标题】:Unnamed JSONArray inside JSONArrayJSONArray 中未命名的 JSONArray
【发布时间】:2013-08-27 15:23:53
【问题描述】:

我使用网络服务请求直方图数据。数据是数组中的一组数组:

[[1375056000000,23.284713745117],[1375142400000,3.809531211853],
[1375228800000,9.6309003829956],[1375315200000,2.7411839962006]]

我希望能够将密钥对值存储在哈希映射中。通常我会遍历一个 JSONArray 并使用 jsonObject.getInt("whatever") 访问对象,但在这种情况下我不能。不知道如何实现。

提前致谢 =)

【问题讨论】:

    标签: java android json parsing arrays


    【解决方案1】:

    从您的 JSON 字符串创建 JSONArray 对象,然后使用 getJSONArray(int index) 方法进行迭代。最后使用 getDouble(int index) 和 getLong(int index) 从内部数组中检索值。

    在你的例子中:

    JSONArray a1 = new JSONArray("[[1375056000000,23.284713745117],[1375142400000,3.809531211853]]");
    for (int i=0; i<a1.length(); i++) {
     JSONArray a2 = a1.getJSONArray(i);
     long v1 = a2.getLong(0);
     double v2 = a2.getDouble(1); 
    }
    

    【讨论】:

      【解决方案2】:
      String json = "[[1375056000000,23.284713745117],[1375142400000,3.809531211853],[1375228800000,9.6309003829956],[1375315200000,2.7411839962006]]";
      
      JSONArray jsonArray = new JSONArray(json);
      for (int i = 0; i < jsonArray.length(); i++){
          jsonArray.getJSONArray(i).getLong(0); //do something with the key
          jsonArray.getJSONArray(i).getDouble(1); //do something with the value
      }
      

      【讨论】:

        【解决方案3】:
        String yourJsonArray;
        JSONArray root = new JSONArray(yourJsonArray);
        int rootSize = root.length();
        for (int i = 0, i < rootSize; i++) {
          JSONArray inner = root. getJSONArray(i);
          long firstChildren = inner.getLong(0);
          double secondChildren = inner.getDouble(1);
        
        
        }
        

        【讨论】:

          猜你喜欢
          • 2014-06-09
          • 2015-05-09
          • 2017-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-09
          • 1970-01-01
          • 2023-03-26
          相关资源
          最近更新 更多