JSONArray cannot be converted to JSONObject
我收到以下错误:
1
|
Error parsing data org.json.JSONException: Value [] of type org.json.JSONArray cannot be converted to JSONObject
|
这是我拥有的 Android 和 PHP 代码:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
private void eventUpdatePoint(String eventStatus,int lat,int lon){
JSONParser jsonParserEUP = new JSONParser(); |
php 代码:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
$response = array(); if (isset($_POST[‘longtitude’]) && isset($_POST[‘latitude’]) &&isset($_POST[‘eventstatus’])) {
$longtitude = $_POST[‘longtitude’]; $latitude = $_POST[‘latitude’]; $eventstatus = $_POST[‘eventstatus’]; $e_id=0; require_once __DIR__ . ‘/db_connect.php’; $db = new DB_CONNECT(); $result = mysql_query(“SELECT id FROM cordinates WHERE longtitude=$longtitude AND latitude=$latitude“) or die(mysql_error()); $e_id = $row[“id”]; if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_array($result)) { $score = $row[“score”]; |
我做错了什么?
- 参考:stackoverflow.com/questions/12142238/
- 请添加字符串,您从服务器收到问题的响应以获得更多帮助
- @beyaz,您找到解决问题的方法了吗?
您正在使用的网络服务返回一个 JSONArray。您必须使用 JSONArray 类型的对象来存储它。您不能使用 JSONObject。
改变这一行:
1
|
JSONObject json = jsonParserEUP.makeHttpRequest(url_updatePoint,“POST”, params);
|
…到这个:
1
|
JSONArray json = jsonParserEUP.makeHttpRequest(url_updatePoint,“POST”, params);
|
- 所以我必须为 JsonArray 实现我的 JsonParser?因为,Jsonparser 返回 Json 对象
- 基本上,是的。我不知道你使用哪个解析器。如果您自己实现它,那么您必须修改它以将 JSON 解析为数组。如果您正在使用某个库,那么它可能有办法做到这一点 – 只需阅读文档。
记录您的回复。如果它以”[“开头并以”]”结尾,您必须将其存储在”JSONArray”类型的变量中。注意您的日志,您的回复必须是一个 “JSONArray”,因此只需将您的响应保存在 “JSONArray” 类型的变量中。
- 我没有明白。发出 HttpRequest 时出现错误。请求时如何执行”JSONArray”类型的变量?
来源:https://www.codenong.com/15601848/