Java JSONArray获取错误

Java JSONArray获取错误,java,php,arrays,json,Java,Php,Arrays,Json,org.json.JSONException:Value[{“id”:“98747406”,“name”:“adam”,“姓氏”:“hfdd”,“年龄”:“2”,“纬度”:“54.2118”,“经度”:“16.1876”,“原产地”:“koszalin”,“目的地”:“sian\u00f3w”,“骑乘id”:“262243421”,“日期”:“2017-05-25 18:13:00”}]在Japanseg,java.lang.String类型的旅客不能转换为JSONARRARY 有人知道是什么导

org.json.JSONException:Value[{“id”:“98747406”,“name”:“adam”,“姓氏”:“hfdd”,“年龄”:“2”,“纬度”:“54.2118”,“经度”:“16.1876”,“原产地”:“koszalin”,“目的地”:“sian\u00f3w”,“骑乘id”:“262243421”,“日期”:“2017-05-25 18:13:00”}]在Japanseg,java.lang.String类型的旅客不能转换为JSONARRARY

有人知道是什么导致了这个错误吗?当我尝试从服务器输出获取JSONArray时会出现这种情况,例如:

输出:

{“iActualJoinRequests”:“4”,“日本旅客”:“[{“id\”:“98747406\”,“姓名\”:“adam\”,“姓氏\”:“hfdd\”,“年龄\”:“2\”,“纬度\”:“54.2113448\,“经度\”:“16.1876282\,“原产地\”:“koszalin\”,“目的地\”:“sian\u00f3w\”,“ride\uID\”:“2431-“日期:”,“2017-05 18:13:00\“}]“}”

编辑:问题已解决,注释中的解决方案。

如果使用,错误将变得非常清楚:

"jaPassengers" : "[{\"id\":\"98747406\",\"name\":\"adam\",\"surname\":\"hfdd\",\"age\":\"2\",\"latitude\":\"54.2113448\",\"longitude\":\"16.1876282\",\"origin\":\"koszalin\",\"destination\":\"sian\u00f3w\",\"ride_id\":\"262243421\",\"date\":\"2017-05-25 18:13:00\"}]"
数组实际上被编码为字符串

要对此进行分析,请首先将其作为字符串获取,然后将生成的字符串作为JSONArray进行分析:

JSONObject joOutput = new JSONObject(output);

String makeShiftArray = joOutput.getString("jaPassengers");

JSONArray jaPassengers = new JSONArray(makeShiftArray);

如果可能的话,最好在服务器端解决这个问题

马特·克拉克,就像你建议的那样,我正在尝试在服务器端解决这个问题。代码:

$aOutput = array('iActualJoinRequests' => $iActualJoinRequests, 'jaPassengers' => $aPassengers);
$joOutput = json_encode($aOutput, JSON_FORCE_OBJECT);
echo $joOutput;
尝试获取JSONArray Japassenger时在java中导致错误,但是:

    $aOutput = array('iActualJoinRequests' => $iActualJoinRequests, 'jaPassengers' => '');
    $joOutput = json_encode($aOutput, JSON_FORCE_OBJECT);
    $joOutput = json_decode($joOutput);
    $joOutput -> jaPassengers = $aPassengers;
    $joOutput = json_encode($joOutput);
    echo $joOutput;
作品:)


问题已解决。

您能否显示如何转换它或获得错误的行(代码)更新代码,如何尝试转换为JSON数组?原因是无法转换,因为异常状态为。JSON未正确格式化为数组,无法解析。如果你想解决这个问题,而不是问为什么会发生这种情况,请发布代码以更快地获得更好的帮助。我编辑了这篇文章,并描述了我想要如何获得这个数组的方法。它不是从应用程序中复制和粘贴,而是稍后粘贴代码。
    $aOutput = array('iActualJoinRequests' => $iActualJoinRequests, 'jaPassengers' => '');
    $joOutput = json_encode($aOutput, JSON_FORCE_OBJECT);
    $joOutput = json_decode($joOutput);
    $joOutput -> jaPassengers = $aPassengers;
    $joOutput = json_encode($joOutput);
    echo $joOutput;