Android で GSON を使用した JSON 解析
問題:
エラーが発生しましたGSON を使用して JSON データを解析しようとしたときの、JSON データの 73 行目。具体的には、このエラーは、BEGIN_OBJECT を期待していたが、NAME が発生したことを示します。
答え:
1。解析メソッドを調整します:
次のように GSON 値を読み取るように JsonParse メソッドを修正することを検討してください:
<code class="java">Gson gson = new Gson(); Reader reader = new InputStreamReader(ims); GsonParse gsonObj = gson.fromJson(reader, GsonParse.class);</code>
リストではなく JSON データの単一ブロックを受信していると仮定します。 、このアプローチは機能するはずです。 ims 変数を調整して、読み取り元のストリームを定義します。
2.クラス構造を確認します:
GsonParse クラスと Words クラスのフィールド名とデータ型が正しいことを確認します。更新されたバージョンは次のとおりです:
GsonParse.class:
<code class="java">public class GsonParse { private String count; private String colbreak; private String score; private List<Words> mWords = new ArrayList<>(); private String seek; // getters and setters omitted for brevity }</code>
Words.class:
<code class="java">public class Words { private String count; private String word; private String name; private String words; private String seek; // getters and setters omitted for brevity }</code>
3. UTF-8 エンコーディング:
GSON は UTF-8 文字を直接サポートしていないため、HTTP 経由で応答を受信している場合は、HTTP 応答自体で UTF-8 に変換する必要があります。 。次のコードを使用できます:
<code class="java">String jsonString = new Gson().toJson(objectToEncode); byte[] utf8JsonString = jsonString.getBytes("UTF8"); responseToClient.write(utf8JsonString, 0, utf8JsonString.Length);</code>
4.その他の考慮事項:
以上がAndroid で GSON を使用して JSON を解析すると、「BEGIN_OBJECT が予期されましたが、NAME が見つかりました」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。