0

文字列を JSONObject に変換できないという問題があります。この問題の解決に役立つ人はいますか? 助けてくれてありがとう。

protected void onPostExecute(String result) {           
if (result==null || result.length()==0){
            // no result:
            return;
}

//clear the list
moviesList.clear();

try {
    //turn the result into a JSON object
    JSONObject responseObject = new JSONObject("results");

            // get the JSON array named "results"
    JSONArray resultsArray = responseObject.getJSONArray(result);

    // Iterate over the JSON array: 
    for (int i = 0; i < resultsArray.length(); i++) {
        // the JSON object in position i 
        JSONObject messageObject = resultsArray.getJSONObject(i);

    // get the primitive values in the object
        String title = messageObject.getString("title");
        String details = messageObject.getString("synopsis");

        //put into the list:
            Movie movie = new Movie(title, details, null,null);
        moviesList.add(movie);
    }
    } catch (JSONException e) {
        e.printStackTrace();
    }

    //refresh listView:
    adapter.notifyDataSetChanged();

    }
} 

結果には価値がある

エラーは次の行にあります。

JSONObject responseObject = new JSONObject("results");
4

4 に答える 4

1
    String obj=JSONObject.quote(YourData);
    JSONArray lArray=new JSONArray(obj);

    // or simply  Delete the prefix 'results'  from your php Code
    // $res2=array("results"=>$response);
    // and you will retrive directelly your JsonArray like 

    JSONArray lArray=new JSONArray(YouData);
于 2013-11-12T23:23:11.433 に答える
0

JSON 文字列自体が [ などで始まるかどうかを確認します。

[{"hello":"goodbye","name":"bob","age":26}]

これは、JSONObject ではなく JSONArray であることを意味します。変更してみる

JSONObject responseObject = new JSONObject("results");

        // get the JSON array named "results"
JSONArray resultsArray = responseObject.getJSONArray(result);

のようなものに

JSONArray responseArray = new JSONArray("results");
JSONObject resonseObject = responseArray.toJSONObject(responseArray);
于 2013-11-28T07:03:57.033 に答える
0

この 2 行を混同しているようです。次のようにしてみてください。

//turn the result into a JSON object
JSONObject responseObject = new JSONObject(result);

// get the JSON array named "results"
JSONArray resultsArray = responseObject.getJSONArray("results");

これは、どこかから取得した JSON 応答に JSONObject が含まれており、その JSONObject が「results」に JSONArray を含んでいると想定しています。

コードサンプルのコメントから判断すると、これは事実であり、同様の命名による単純な取り違えの場合です。

于 2013-11-13T00:24:52.737 に答える
0
  • これは、の形式JSONObjectが間違っているためです。Java で String を JSONObject に変換する方法 を参照 してください 。だけ"results"ではありませんJSON。次のようなものを試してみてください:

    {"result":"blahblah"}

  • または誤って、result書き込み中に二重引用符を含めました

    JSONObject responseObject = new JSONObject("results");

    はすでに文字列なのでresult、行を次のように置き換えてみてください。

    JSONObject responseObject = new JSONObject(results);

于 2013-11-12T23:22:17.733 に答える