Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php org.json.JSONArray无法读取我的json对象_Php_Android_Json_Arrays - Fatal编程技术网

Php org.json.JSONArray无法读取我的json对象

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接收到的文本是: {

我正在为android编写一个客户端/服务器应用程序,它向服务器发送用户名和密码,并接收该用户帐户的状态

我的php代码如下所示:

$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数组只是有序映射。这就解释了,在我的脑海中,我的印象是几个键值对将是一个数组。这就是为什么,在我的脑海中,我的印象是几个键值对将是一个数组。