0

我有从服务器传递的这个字符串:

{\"error\":\"email_in_diff_account\"}

它是在 PHP 中创建的,如下所示:

$post_data = array('error' => "email_in_diff_account");

echo json_encode($post_data);

但是当我尝试在 JAVA 中像这样解析它时:

JSONArray obj = new JSONArray(result);

它会导致以下异常。

org.json.JSONObject 无法转换为 JSONArray

有人知道如何解决这个问题吗?我没有在 php 中正确创建 JSON 吗?

4

4 回答 4

2

如果那些反斜杠在那里,那将是你的问题。请发布例外情况。

于 2013-02-02T05:59:13.790 回答
2

如果您使用的是http://www.json.org/javadoc/org/json/JSONArray.html

您正在尝试解析一个数组,但您正在向它传递一个对象,您应该使用http://www.json.org/javadoc/org/json/JSONObject.html

JSONObject json = new JSONObject(result);
于 2013-02-02T06:04:36.417 回答
1

首先,这段代码不能像这样创建 json

$post_data = array('error' => "email_in_diff_account");
echo json_encode($post_data);

{\"error\":\"email_in_diff_account\"}   // your output

{"error":"email_in_diff_account"}   // actual output

您可以使用此链接http://jsonlint.com/验证您的 JSON

请参阅代码 http://codepad.org/oJXj0GdI的工作示例

于 2013-02-02T05:59:35.647 回答
1

正确的用法是: JSONObject json = new JSONObject(result);

于 2013-02-02T06:07:06.013 回答