文字列を JSON 配列に変換する際の問題
Web サービスの JSON 文字列を JSON 配列に解析しようとすると、Android開発者は型不一致例外を検出しました。指定された JSON 文字列は有効で、次のコードが使用されました:
JSONArray jsonArray = new JSONArray(readlocationFeed);
解決策
問題は、作成される JSON オブジェクトのタイプにあります。受信した JSON は実際には配列ではなく JSON オブジェクトです。この問題を解決するには、コードを次のように変更する必要があります。
JSONObject jsonObject = new JSONObject(readlocationFeed); JSONArray jsonArray = jsonObject.getJSONArray("locations");
これにより、JSON 文字列から JSONObject が作成され、そこから「locations」配列が取得されます。その後、配列を反復して個々の位置オブジェクトにアクセスできます。修正されたコードは次のとおりです:
JSONObject jsonObject = new JSONObject(readlocationFeed); JSONArray jsonArray = jsonObject.getJSONArray("locations"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject locationObject = jsonArray.getJSONObject(i); }
以上がAndroid で文字列から JSONArray への変換が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。