Eu estou tentando ler JSON de um arquivo de armazenamento interno em uma lista de objetos.
Meu código para a leitura do arquivo e 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));
No entanto, estou recebendo o erro
não pode método de determinação fromJson ( 'java.lang.stringBuilder, java.lang.reflect.Type')
O JSON Eu estou tentando carga é (é dentro dos colchetes porque eu serializada-lo a partir de uma lista de objetos):
[
{"balance":258,"walletName":"wallet 1"},
{"balance":5222,"walletName":"wallet 2"},
{"balance":1,"walletName":"wallet 3"}
]
Eu sei que uma correção comum para isso é mudar o código de importação a partir org
de com
, no entanto eu já fiz certeza de que ele é com
.
o Gson fornecer uma série de sobrecargas para o fromJson
método, aqui estão as suas assinaturas:
Mas como você pode ver nenhum deles leva o StringBuilder como primeiro argumento. Isso é o que o compilador está reclamando. Em vez disso você tem construtores que levam uma string como primeiro argumento.
Então, substituir esta linha:
walletList.add(new Gson().fromJson(data, walletListType));
com:
walletList.add(new Gson().fromJson(data.toString(), walletListType));
E você deve ser bom para ir.