アンドロイドStudioでGSONを使用してファイルからJSONを読みます

ブレイディ・ハーパー:

私は、オブジェクトのリストに内部ストレージファイルからJSONを読み込むしようとしています。

そして、ファイルを読み込むための私のコードはGSON次のとおりです。

fis = openFileInput(filename);

BufferedReader reader = new BufferedReader(new InputStreamReader(fis));

StringBuilder data = new StringBuilder();
String line = null;

line = reader.readLine();

while (line != null)
{
     data.append(line).append("\n");
}

data.toString();

reader.close();
fis.close();

Type walletListType = new TypeToken<ArrayList<WalletClass>>(){}.getType();
walletList.add(new Gson().fromJson(data, walletListType));

しかし、私はエラーを取得しています

方法fromJson( 'java.lang.stringBuilder、java.lang.reflect.Type')を解決することはできません

私は負荷にしようとしているJSONは(私はオブジェクトのリストからそれを連載しましたので、それが角括弧の内側にあります)です。

[
   {"balance":258,"walletName":"wallet 1"},
   {"balance":5222,"walletName":"wallet 2"},
   {"balance":1,"walletName":"wallet 3"}
]

私は、このための一般的な修正プログラムはからのインポートコードを変更している知っているorgcomが、私はすでに確認してくださいそれが作りました、com

alainlompo:

Gsonはのためのオーバーロードの多くを提供fromJsonする方法を、ここでは彼らの署名です。

fromJsonのオーバーロード

しかし、あなたはそれらのどれも取らない見ることができるようにStringBuilderを最初の引数として。これは、コンパイラが文句を言っているものです。代わりに、あなたは最初の引数として文字列を取るコンストラクタを持っています。

だから、この行を置き換えます。

walletList.add(new Gson().fromJson(data, walletListType));

と:

walletList.add(new Gson().fromJson(data.toString(), walletListType));

そして、あなたが行っても良いことがあります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=296871&siteId=1