【发布时间】:2020-06-27 19:13:44
【问题描述】:
我正在尝试将 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"}
]
我知道一个常见的解决方法是将导入代码从 org 更改为 com,但我已经确定它是 com。
【问题讨论】:
-
替换行 = reader.readLine();在while循环内
-
@Kirguduck 那部分工作正常。但是将阅读器放在 while 循环中并不会改变 GSON 错误
-
如果你使用 line = reader.readLine(); out of loop 那么你将只读取 json 的第一行。添加日志并检查 - 你读了什么。现在你只读取了 json 的一部分,看起来这是错误的原因
标签: java android json android-studio gson