Php org.json.JSONArray无法读取我的json对象
我正在为android编写一个客户端/服务器应用程序,它向服务器发送用户名和密码,并接收该用户帐户的状态 我的php代码如下所示:Php org.json.JSONArray无法读取我的json对象,php,android,json,arrays,Php,Android,Json,Arrays,我正在为android编写一个客户端/服务器应用程序,它向服务器发送用户名和密码,并接收该用户帐户的状态 我的php代码如下所示: $return['login'] = 'success'; echo json_encode($return); $parameters['login'] = 'success'; $return['parameters'] = $parameters; echo json_encode($return); android接收到的文本是: {
$return['login'] = 'success';
echo json_encode($return);
$parameters['login'] = 'success';
$return['parameters'] = $parameters;
echo json_encode($return);
android接收到的文本是:
{"login":"success"}
但当我试图解码json字符串以读取参数时,仍然会出现错误:
JSONArray jsonArray = new JSONArray(input);
例外情况:
02-10 11:54:37.743: WARN/System.err(332):
org.json.JSONException:
Value {"login":"success"} of type org.json.JSONObject
cannot be converted to JSONArray
02-10 11:54:37.779: WARN/System.err(332):
at org.json.JSON.typeMismatch(JSON.java:107)
所以我想我错过了php应该发送的东西,但在读了json.org之后,我就是看不到它是什么。我尝试在前后添加括号,并将其包装到另一个数组中,如下所示:
$return['login'] = 'success';
echo json_encode($return);
$parameters['login'] = 'success';
$return['parameters'] = $parameters;
echo json_encode($return);
您应该使用而不是因为您发送了一个键值对。您应该使用而不是因为您发送了一个键值对。它是一个
JSONObject
而不是JSONArray
,所以它应该是
JSONObject json_obj = new JSONObject(your_string);
然后您可以使用json_obj
来获取值
String login = json_obj.getString("login");
Log.d("login status", login);
它是一个
JSONObject
而不是JSONArray
,所以它应该是
JSONObject json_obj = new JSONObject(your_string);
然后您可以使用json_obj
来获取值
String login = json_obj.getString("login");
Log.d("login status", login);
您的json不是JSONArray,而是JSONObject
try {
JSONObject o = new JSONObject("{\"login\":\"success\"}");
System.out.println(o.getString("login"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出:
System.out I success
您的json不是JSONArray,而是JSONObject
try {
JSONObject o = new JSONObject("{\"login\":\"success\"}");
System.out.println(o.getString("login"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出:
System.out I success
可能是因为它不是json数组…异常似乎很明显,但我认为存在误解,因为PHP数组只是有序映射。可能是因为它不是json数组…异常似乎很明显,但我认为存在误解,因为PHP数组只是有序映射。这就解释了,在我的脑海中,我的印象是几个键值对将是一个数组。这就是为什么,在我的脑海中,我的印象是几个键值对将是一个数组。