1

私のPHPコードはこれです:

$userdetails = mysqli_query($con, "SELECT *FROM aircraft_status"); 

#$row = mysql_fetch_row($userdetails) ;

while($rows=mysqli_fetch_array($userdetails)){
$status[]= array($rows['Aircraft']=>$rows['Status']);
}
#Output the JSON data
echo json_encode($status); 

そしてこれを与える:

[{"A70_870":"1"},{"A70_871":"1"},{"A70_872":"1"},{"A70_873":"1"},{"A70_874":"1"},{"A70_875":"1"},{"A70_876":"2"},{"A70_877":"1"},{"A70_878":"2"},{"A70_879":"2"},{"A70_880":"2"},{"A70_881":"0"},{"A70_882":"0"},{"A70_883":"0"},{"A70_884":"0"},{"A70_885":"0"}]

それを読み取るJavaコードは次のとおりです。

// Create a JSON object from the request response
    JSONObject jsonObject = new JSONObject(result);

    //Retrieve the data from the JSON object
        n870 = jsonObject.getInt("A70_870");
        n871 = jsonObject.getInt("A70_871");
        n872 = jsonObject.getInt("A70_872");
        n873 = jsonObject.getInt("A70_873");
        n874 = jsonObject.getInt("A70_874");
        n875 = jsonObject.getInt("A70_875");
        n876 = jsonObject.getInt("A70_876");
        n877 = jsonObject.getInt("A70_877");
        n878 = jsonObject.getInt("A70_878");
        n879 = jsonObject.getInt("A70_879");
        n880 = jsonObject.getInt("A70_880");
        n881 = jsonObject.getInt("A70_881");
        n882 = jsonObject.getInt("A70_882");
        n883 = jsonObject.getInt("A70_883");
        n884 = jsonObject.getInt("A70_884");
        n885 = jsonObject.getInt("A70_885");

Androidアプリを実行すると、エラーが発生し続けるようです:

"of type org.json.JSONArray cannot be converted into Json object"

ただし、角かっこなしでアプリのダミーコードを送信すると、正常に動作するようです! 両端の [ と ] 括弧を取り除くにはどうすればよいですか???

あるいは、json をそのまま受け入れ、Java を適応させて読み取る方法はありますか?

4

5 に答える 5

1
echo json_encode($status, JSON_FORCE_OBJECT);

デモ: http://codepad.viper-7.com/lrYKv6

また

echo json_encode((Object) $status); 

デモ; http://codepad.viper-7.com/RPtchU

于 2013-10-10T21:16:46.730 に答える
1

JSONobject を使用する代わりに、JSONArray を使用します。

   JSONArray array = new JSONArray(sourceString);

後で配列をループして、ビジネス ロジックを実行します。

http://www.json.org/javadoc/org/json/JSONArray.html

于 2013-10-10T21:18:39.597 に答える