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);