簡體   English   中英

Android,JSONObject無法轉換為JSONArray

[英]Android, JSONObject cannot be converted to JSONArray

在我的Android應用中,我試圖與包含隨機生成的假用戶名和分數的Web服務器進行通信。

{ scores: [
 {
un: "Feltricapulta",
sc: "143"
},
{
un: "Henroid",
sc: "120"
},
{
un: "ieteubmospta",
sc: "70"
},
{
un: "pmbotesteuai",
sc: "67"
},
{
un: "epesomiubtat",
sc: "65"
}
] }

PHP文件中的代碼如下所示:

<?php 

    include ('connecttomysql.php');


    $command = 'SELECT un, sc FROM xmlscores ORDER BY sc DESC';
    $execute_command = mysql_query($command);

        echo '{ "scores": ';

    while ($table_row = mysql_fetch_assoc($execute_command))
        {
            $jsonArray [] = $table_row;         
        }
        echo json_encode($jsonArray);

        echo '}'

    ?>

我在Android中使用通用的HttpGet方法將此.php URL稱為。 json數據的輸出打印到stacktrace,並向我提供“無法從對象轉換為數組”錯誤。

查看PHP文件和json輸出,我的代碼或輸出是否有明顯的錯誤? 我不知道。

“無法從對象轉換為數組”

表示您正在嘗試將響應字符串轉換為JSONArray 但是當前字符串包含JSONObject作為根元素,而不是JSONArray 因此,將其轉換為JSONObject

JSONObject json=new JSONObject(<Server response string here>);

//  get scores JSONArray from json
JSONArray jsonscoresarray=json.getJSONArray("scores");
...

// Json數組的實現應該像這樣。

 @Override
    public void fromJSON(Object json) throws JSONException {
        JSONObject jsonObject = new JSONObject((String) json);

        JSONArray jsonArray = jsonObject.getJSONArray("scores");
        mScores = new ArrayList<Score>();
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObjct = (JSONObject)jsonArray.getJSONObject(i);
            Score object = new Score();
            object.fromJSON(jsonObjct);
            mScores.add(object);
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM