通常、PHP サーバーに requet を送信して mysql テーブルのデータ セットをクエリすると、Andorid に送り返され、問題なく応答文字列 (JSONArray 文字列) が解析されます。使用される PHP コード セクションは次のとおりです。
....
if($result = mysql_query($sql, $link))
{
if (mysql_num_rows($result) != 0)
{
while($row2 = mysql_fetch_array($result,MYSQL_ASSOC))
{
$data[]=$row;
}
}
}
print_r(urlencode(json_encode($data)));
if (is_resource($result))
mysql_free_result($result);
mysql_close($link);
ただし、次の php コードのメソッドを使用して SQL クエリを完了した後、キーと値の文字列のもう 1 つのパーズを $data 配列に追加すると、次のようになります。
$data['new_key'] = "new_value";
新しい JSONArray 文字列の解析中に、Android 側で JSONArry Exception プロンプトが表示されます: ..... (値の部分は 2 バイトの漢字です)
Value {"new_key":"new_value","0":{"old_key1":"old_value1" ,"old_key2":"old_value2","old_key3":"old_value3",.....}} of type org.json.JSONObject cannot be converted to JSONArray
よろしければ、私が間違っていた場所とその解決方法を教えてください。ありがとうございます。