Je suis en train de lire un fichier JSON à partir de stockage interne dans une liste d'objets.
Mon code pour lire le fichier et GSON
est:
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));
Cependant, je reçois l'erreur
Ne peut pas résoudre la méthode fromJson ( 'java.lang.StringBuilder, java.lang.reflect.Type')
JSON Je suis en train de charge est (il est à l'intérieur des crochets parce que je l'ai sérialisé dans une liste d'objets):
[
{"balance":258,"walletName":"wallet 1"},
{"balance":5222,"walletName":"wallet 2"},
{"balance":1,"walletName":"wallet 3"}
]
Je sais une solution courante est en train de changer le code d'importation de org
la com
, mais je l' ai déjà fait en sorte qu'il est com
.
la Gson fournir beaucoup de pour la surcharge fromJson
méthode, voici leurs signatures:
Mais comme vous pouvez le voir aucun d'entre eux prend la StringBuilder comme premier argument. C'est ce que le compilateur se plaint. Au lieu de cela , vous avez des constructeurs qui utilisent une chaîne comme premier argument.
Donc remplacer cette ligne:
walletList.add(new Gson().fromJson(data, walletListType));
avec:
walletList.add(new Gson().fromJson(data.toString(), walletListType));
Et vous devriez être bon d'aller.