如何解析Double数组JSON

时间:2015-11-12 08:30:54

标签: android json

在我的应用程序中,我正在尝试解析此结构类型的Json值。你们有没有人面对这个问题?任何帮助将不胜感激。

主要问题是双重 [[

[
  [
    {
      "nid": "29",
      "vid": "30",
      "type": "oa_discussion_post",
      "language": "und",
      "title": "We want to hear from you.",
      "uid": "1",
      "status": "1",
      "created": "1441316801",
      "changed": "1442461699",
      "comment": "2",
      "promote": "0",
      "sticky": "0",
      "tnid": "0",
      "translate": "0",
      "uuid": "b9cb0351-5dbc-4ef1-8f8c-5570b66a2339"
    }
  ]
]

这是我的方法:

JSONArray json = new JSONArray(jsonData);
for(int i=0;i<json.length();i++) {
    HashMap<String, String> map = new HashMap<String, String>();
    JSONObject e = json.getJSONObject(i);

    String userType=e.getString("vid");
    String topLine=e.getString("type");
}

我的错误在哪里?

3 个答案:

答案 0 :(得分:0)

您还有JSONArray,但您使用JSONObject。只是做

JSONArray firstArray = new JSONArray(jsonData);
JSONArray secondArray = firstArray.getJSONArray(0);
JSONObject jsonObject = secondArray.getJSONObject(0);

//Do want you want with your jsonObject
String userType = jsonObject .getString("vid");
String topLine = jsonObject .getString("type");

答案 1 :(得分:0)

顶层数组中有一个嵌套数组

 for(int i=0;i<json.length();i++) {
   JSONArray nestedJsonArray = json.optJSONArray(i);
   if (nestedJsonArray != null) {
        for(int j=0;j<nestedJsonArray.length();j++) {
              // use j and nestedJsonArray to retrieve the JSONObect
              HashMap<String, String> map = new HashMap<String, String>();
                JSONObject e = nestedJsonArray.optJSONObject(i);
                String userType=e.optString("vid");
                String topLine=e.optString("type");
        }
   }
 }

答案 2 :(得分:0)

数组中的数组中有一个对象。

您必须选择其中的第一个数组,而不是直接选择JSONObject。选择第二个JSONArray后,使用getJSONObject(0);

选择您的JSONObject