我正在尝试将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。
问题来源:Stack Overflow
可以参考:https://help.aliyun.com/document_detail/109858.html?spm=a2c4g.11186623.6.626.13cf7aaebUvMd1
Gson为该fromJson方法提供了很多重载,这是它们的签名:
fromJson重载
但是正如您所看到的,它们都没有采用StringBuilder作为第一个参数。这就是编译器所抱怨的。相反,您有将String作为第一个参数的构造函数。
因此,替换此行:
walletList.add(new Gson().fromJson(data, walletListType));
与
walletList.add(new Gson().fromJson(data.toString(), walletListType));
而且您应该很好。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。