0

GSON を使用して Json 文字列をオブジェクトに変換しようとしています。次のようなファイルから文字列をロードすると:

File f = new File(Environment.getExternalStorageDirectory()
            + File.separator + "jsonTest");
    BufferedReader br = new BufferedReader(new FileReader(f));
    String Json = br.readLine();
    br.close();
    Gson gson = new Gson();
    dreFieldArray = gson.fromJson(Json, DreField[].class);

それは正常に動作します。ただし、代わりに次のように文字列リソースを使用しようとすると:

String Json = this.getString(R.string.NewFileData);
Gson gson = new Gson();
    dreFieldArray = gson.fromJson(Json, DreField[].class);

EOFException が発生します。resources の文字列はファイルからコピーされたものであるため、同一である必要があります。オブジェクトの後に余分な文字があると、この例外が発生する可能性があると読みましたが、何も表示されません。ここで何がうまくいかないのかについてのアイデアはありますか?

4

2 に答える 2

1

getString()すべての特殊文字が表示されるわけではありません。あなたはそれらを逃れる必要があるかもしれません。

の内容をログに記録しR.string.NewFileData、欠落している文字を確認してからエスケープしますstrings.xml(削除された文字の前に「\」を置きます)。

于 2012-12-03T19:52:15.327 に答える
0

使ってみてはどうですか

String Json= "{\"userName\":\"hello\",\"userId\":123}"

それ以外のString Json = this.getString(R.string.NewFileData);

readline 分析パラグラフを\r\n

e.printStackTrace()のメッセージを入れていただけるIOExceptionと助かります

于 2012-12-04T05:27:30.820 に答える