【问题标题】:JSON Error: Error parsing data org.json.JSONException: A JSONArray text must start with '[' at character 1 of why?JSON 错误:解析数据时出错 org.json.JSONException:JSONArray 文本必须在字符 1 处以“[”开头,为什么?
【发布时间】:2011-11-12 03:35:15
【问题描述】:

andoroid 尝试从 PHP 返回数据时出现以下错误

错误:解析数据时出错 org.json.JSONException: A JSONArray 文本 必须以 '[' 开头的字符 1

PHP 脚本:

<?php 
#
header('Content-type: application/json');
print json_encode(array('name' => 'john'));

#
?>

回报:

09-07 08:49:04.740: INFO/result(704): {"name":"john"}

请帮帮我

【问题讨论】:

  • 你能显示PHP脚本的输出是什么吗?
  • 你用来解析这个的代码是什么

标签: java php android json


【解决方案1】:

在上面提到的这段代码中(JSONArray jArray = new JSONArray(result);).result 不是 JSONArray,因此您需要通过添加“[”+result+“]”将结果转换为 JsonArray,或者您需要创建 JSONObject。

一个答案 JSONArray jArray = new JSONArray("["+result+"]");

其他答案 JSONObject jobject=new JSONObject(result);

【讨论】:

    【解决方案2】:

    看起来您正在尝试使用数组解析器而不是 JSON 对象解析器来解析对象

    【讨论】:

    • 不正确:JSONArray jArray = new JSONArray(result); for (int i = 0; i
    • 你可以编码格式并将其放入原始问题吗?还有你在哪一行得到错误。从 Array 的索引开始可能有一个 Array 会导致该错误。
    • 只是为了确保 "9-07 08:49:04.740: INFO/result(704):" 不是真的在输出中,对吗??
    猜你喜欢
    • 2021-03-19
    • 2017-06-06
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多