GSON:预计BEGIN_OBJECT,但STRING在第1行第1路径$
问题描述:
我发现这个错误很多主题,但我没有找到任何解决方案... 希望你们其中一个可以帮我解决这个问题。
我有一个问题,从文本文件解析一个JSON到一个Java对象。
我读的文件,我想将它们转换为使这里的对象是代码:
private ArrayList<Game> gameList;
for (File file : gamesFolder.listFiles()) {
BufferedReader br = new BufferedReader(new FileReader(file));
//Line below is where it crash
Game game = new Gson().fromJson(br, Game.class);
this.gameList.add(game);
}
我的游戏类:
public class Game {
private Integer id;
private String game;
private List<String> items;
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getGame() { return game; }
public void setGame(String game) { this.game = game; }
public List<String> getItems() { return items; }
public void setItems(List<String> items) { this.items = items; }
}
最后的json:
{
"id": 730,
"game": "Counter-Strike: Global Offencive",
"items": [
"Clé de caisse spectrale",
"Caisse spectrale",
"AWP | Asiimov"
]
}
感谢您的帮助!
答
我终于找到答案!
问题是,当我可以读取文件中的JSON。它不是UTF-8,所以输出很奇怪。
解决这个问题。我改变了缓冲线。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF8"));
Game game = new Gson().fromJson(br, Game.class);
Thnx!
调试此代码,但确保'文件'实际上是包含上述json的文件 - 添加'System.out.println(文件);' –
是的文件是好的,我实例化gamelist在我的构造器中,但我没有看到它 – tontonfranki