【问题标题】:How to get data from key of a JSON [duplicate]如何从 JSON 的键中获取数据 [重复]
【发布时间】:2017-07-20 18:35:51
【问题描述】:

我正在创建一个应用程序,我需要在其中解析JSONObject 格式的联系人列表,每个对象前面都有键,我不知道如何解析这种格式。

{
  "1": {
    "mobileContact": "98562325",
    "systemContact": "9198562325"
  },
  "3": {
    "mobileContact": "987563656",
    "systemContact": "91987563656"
  },
  "4": {
    "mobileContact": "965632525",
    "systemContact": "91965632525"
  },
  "6": {
    "mobileContact": "965436222",
    "systemContact": "91965436222"
  }
}

【问题讨论】:

  • 不,它不是 How to parse JSON Array (Not Json Object) in Android ... keys is key
  • 它不是重复的先生,它在大括号前有钥匙..请给我一个解决方案

标签: android json parsing


【解决方案1】:
Use the keys() iterator to iterate over all the properties, and call get() for each.

Iterator<String> iter = json.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
    Object value = json.get(key);
} catch (JSONException e) {
    // Something went wrong!
}
}

【讨论】:

    【解决方案2】:
    try{
        JSONObject json = new JSONObject(jsonRespondeString);
        Iterator<String> iterator =  json.keys();
        while (iterator.hasNext()){
               String key =  iterator.next();
    
                   JSONObject object = json.getJSONObject(key);
                   String value1 = object.getString("key1");
                   String value2 = object.getString("key2");
                }
        }
     catch (JSONException e){
          e.printStackTrace();
    }
    

    试试这个有帮助

    【讨论】:

      【解决方案3】:

      你可以使用GSON库来解析它。

      String data = "{\n" +
              "  \"1\": {\n" +
              "    \"mobileContact\": \"98562325\",\n" +
              "    \"systemContact\": \"9198562325\"\n" +
              "  },\n" +
              "  \"3\": {\n" +
              "    \"mobileContact\": \"987563656\",\n" +
              "    \"systemContact\": \"91987563656\"\n" +
              "  },\n" +
              "  \"4\": {\n" +
              "    \"mobileContact\": \"965632525\",\n" +
              "    \"systemContact\": \"91965632525\"\n" +
              "  },\n" +
              "  \"6\": {\n" +
              "    \"mobileContact\": \"965436222\",\n" +
              "    \"systemContact\": \"91965436222\"\n" +
              "  }\n" +
              "}";
      
      Map<String, Item> itemMap = new HashMap<>();
      itemMap = new Gson().fromJson(data, itemMap.getClass());
      Log.i("data", itemMap);
      

      物品类

      private class Item {
          String mobileContact;
          String systemContact;
      
          // getters and setters
      
          public String getMobileContact() {
              return mobileContact;
          }
      
          public void setMobileContact(String mobileContact) {
              this.mobileContact = mobileContact;
          }
      
          public String getSystemContact() {
              return systemContact;
          }
      
          public void setSystemContact(String systemContact) {
              this.systemContact = systemContact;
          }
      }
      

      您需要在build.gradle文件中添加以下内容,

      compile 'com.google.code.gson:gson:2.8.0'
      

      【讨论】:

        猜你喜欢
        • 2019-07-07
        • 1970-01-01
        • 2022-11-18
        • 1970-01-01
        • 2017-12-09
        • 1970-01-01
        • 1970-01-01
        • 2019-03-04
        • 1970-01-01
        相关资源
        最近更新 更多