Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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 无法将JSONArray转换为JSONObject_Php_Android_Json - Fatal编程技术网

Php 无法将JSONArray转换为JSONObject

Php 无法将JSONArray转换为JSONObject,php,android,json,Php,Android,Json,我发现以下错误: Error parsing data org.json.JSONException: Value [] of type org.json.JSONArray cannot be converted to JSONObject 以下是我的Android和PHP代码: private void eventUpdatePoint(String eventStatus,int lat,int lon){ JSONParser jsonParserEUP = new JSON

我发现以下错误:

Error parsing data org.json.JSONException: Value [] of type org.json.JSONArray cannot be converted to JSONObject
以下是我的Android和PHP代码:

private void eventUpdatePoint(String eventStatus,int lat,int lon){

    JSONParser jsonParserEUP = new JSONParser(); 
        try
        {   
            List<NameValuePair> params = new ArrayList<NameValuePair>(); 
            params.add(new BasicNameValuePair("longtitude", Integer.toString(lon))); 
            params.add(new BasicNameValuePair("latitude", Integer.toString(lat)));
            params.add(new BasicNameValuePair("eventstatus", eventStatus));
            String url_updatePoint = "http://10.0.2.2/android_connect/event_update_point.php";
            JSONObject json = jsonParserEUP.makeHttpRequest(url_updatePoint,"POST", params);
            Log.d("Response", json.toString()); 
        }
        catch(Exception e)
        {
            e.printStackTrace();
            Log.d("ERROR:","ERROR:"    + e.getClass().getName() + ":" + e.getMessage());
        }
    }

我做错了什么?

记录您的响应。如果它以“[”开头,以“]”结尾,您必须将其存储在“JSONArray”类型的变量中。请注意您的日志,您的响应必须是“JSONArray”,所以只需将您的响应保存在“JSONArray”类型的变量中即可。

您使用的Web服务返回JSONArray。必须使用JSONArray类型的对象来存储它。不能使用JSONObject

更改此行:

JSONObject json = jsonParserEUP.makeHttpRequest(url_updatePoint,"POST", params);
……为此:

JSONArray json = jsonParserEUP.makeHttpRequest(url_updatePoint,"POST", params);

请参考:plz添加您从服务器获得的字符串,以获取更多信息help@beyaz,你找到解决问题的办法了吗?我没有弄清楚。我在做HttpRequest时出错了。当请求时,我如何处理类型为“JSONArray”的变量?所以我必须为JSONArray实现JsonParser?因为,Jsonparser返回Json对象基本上是的。我不知道您使用哪种解析器。如果您自己实现了它,那么您必须修改它以将JSON解析为数组。如果你正在使用某个库,那么它可能有一种方法——只需阅读文档。
JSONArray json = jsonParserEUP.makeHttpRequest(url_updatePoint,"POST", params);