【问题标题】:Parse JsonArray without key in android在android中解析没有键的JsonArray
【发布时间】:2014-06-07 07:18:59
【问题描述】:

我有一个 json 响应,但这是标准格式吗?

[{"code":"123","rate":"0.1","title":"sss","subtitle":"mmm"},{"code":"456","rate":"0.1","title":"bbb","subtitle":"uuu"}]

我如何在 android 中解析它?

new JSONObject(result.toString()) 

抛出异常!

06-07 11:45:54.943: W/System.err(10310):    at org.json.JSON.typeMismatch(JSON.java:111)
06-07 11:45:54.943: W/System.err(10310):    at org.json.JSONObject.<init>(JSONObject.java:158)
06-07 11:45:54.943: W/System.err(10310):    at org.json.JSONObject.<init>(JSONObject.java:171)

【问题讨论】:

  • 是的,您可以将您的 Json 粘贴到 jsonlint.com 以进行检查验证
  • 你的 json 是一个数组而不是一个对象,所以你需要new JSONArray(result.toString());

标签: android json arrays


【解决方案1】:

我有一个 json 响应,但这是标准格式吗?

开头没有&lt;,结尾没有&gt;。所以:

new JSONObject(result.toString().substring(1, result.length() - 2));

或更可能:

new JSONArray(result.toString().substring(1, result.length() - 2));

因为它的顶层是一个数组。

既然你已经删除了 &lt;&gt; 你原来的:

由于它的顶层是一个数组,你可能想要JSONArray,而不是JSONObject

new JSONArray(result.toString());

【讨论】:

  • 你是对的。但问题不是;谢谢
  • @Mimad:在什么方面不是那些?那些使它无效的JSON,所以你不能解析它。没有它们,它有效的 JSON,你可以解析它。 (另外:你可能想要new JSONArray 而不是new JSONObject,因为它是一个数组,而不是一个对象。我已经添加了。)
  • 记录是我的错!:D
  • @Mimad:啊,好吧。所以这只是 JSONObjectJSONArray 的事情。
【解决方案2】:

这是JSONarray

[{"code":"123","rate":"0.1","title":"sss","subtitle":"mmm"},{"code":"456","rate":"0.1","title":"bbb","subtitle":"uuu"}]

尝试解析

 new JSONArray(result.toString())

【讨论】:

    【解决方案3】:

    首先像这样分配你的 json 数组

    JSONArray jsar=new JSONArray(result);
    

    然后像这样解析对象

    for(int i=0;i<jsar.length;i++)
    {
    JSONObject jsobj=new JSONObject(jsar[i]);
    
    String strcode=jsobj.get("code");
    
    String strrate=jsobj.get("rate");
    
    String strtitle=jsobj.get("title");
    
    String strsubtitle=jsobj.get("subtitle");
    }
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多