【问题标题】:Failed to Parse JSON Array Inside JSON Array [closed]无法解析 JSON 数组内的 JSON 数组 [关闭]
【发布时间】:2013-08-02 09:56:51
【问题描述】:

我有这样的 JSON 响应:

{
  "ResponseCode": "000",
  "ResponseDescription": "Successful",
  "ResponseData": [
    [
      "RequestID",
      "ProviderAuditID",
      "RequestTime",
      "Product",
      "ProductCode",
      "Currency",
      "Value",
      "ValueRes",
      "ValuePro",
      "TransactionResponseCode",
      "TransactionResponseDescription"
    ],
    [
      "23",
      null,
      "2013-07-22 07:09:06",
      "Test Product",
      "098",
      "India",
      "456.000000",
      "456.000000",
      "456.000000",
      null,
      null
    ],   
  ]
}

现在我想解析这个值并将其设置到列表视图中 谁能帮我解决这个问题???

编辑 ::

我在解析中有多个值,这只是一个例子......

【问题讨论】:

  • 您可能需要使用多个 foreach 循环
  • 这是使用 JSON 的非常糟糕的方法。
  • 你想用它做什么?实例化具有相同属性的类?只是显示数据?
  • 你应该使用"ResponseData": { "RequestID" : 23, "ProviderAuditID" : "id", ... }
  • @PankajKumar 是的,我知道,但我只能用这种方式解析......我别无选择,你能帮我实现这个目标吗? :(

标签: android json


【解决方案1】:

您有一个包装器对象,其中一个字段中有一个数组。该字段包含一个字符串列表。

将您的 json 解析为 JSONObject,然后您可以简单地获取 JSONArray 并获取其中的列表。

这应该可行:

JSONObject response = new JSONObject(json);
JSONArray jsonArray = response.getJSONArray("ResponseData");
for (int i = 0; i < jsonArray.length(); i++) {
    JSONArray arrValues = (JSONArray) jsonArray.get(i);
    // do what you have to do with the values
    for (int i = 0; i < arrValues.length(); i++) {
        String value = (String) arrValues.get(i);
    }
}

【讨论】:

  • 它可能有效,但我在jsonlint.com 中检查了 AndroidLearner 的 JSON,它是错误的
  • 后面的逗号不对,可能是他抄错了。
  • @Enrichman List&lt;String&gt; myList = (List&lt;String&gt;) jsonArray.get(i); 这行显示java.lang.ClassCastException: org.json.JSONArray
  • 嗯...已编辑!试试这个。 :)
  • @Enrichman 我得到了所有的值,但是我该如何存储它,因为我也想在列表视图中显示这个东西......
【解决方案2】:

请检查您的 json 数据。 使用以下网站 -http://jsonlint.com/

您的 json 无效。

【讨论】:

  • 我已经检查了 JSONLINT 中的 JSON,它的 100 % 有效..
  • 请检查我的 json 字符串是否出错。
  • 这不是有效的 JSON。特别是倒数第三行的尾随逗号无效。
  • @dpjanes 这是一个拼写错误。请注意我在问题中的编辑,我提到会有多个记录,这只是一个例子。所以在复制时我忘记删除逗号..
猜你喜欢
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
相关资源
最近更新 更多