使用来自Google的json库的GSON库时遇到问题。希望有人可以给我一些提示。
问题是当我使用gson.fromJson()函数尝试将json字符串转换为指定的已定义类时。
示例代码:
String jsonStr = "{name:"ABC", countries:["US"]}"; // Some Json string.
Gson gson = new Gson();
Example example = gson.fromJSON(jsonStr, Example.class);
class Example {
// does no have no-arg constructor
private String name;
private Integer age;
private JSONArray keywords; // import org.json.JSONArray;
private JSONArray countries;
// other codes
}
以上代码是我的问题的简化版本。 问题出在fromJson()函数中。错误消息是“JsonParseException:Expecting object found found [”US“]”。
我无法弄清问题是什么。我想也许gson不知道如何将字符串转换为JSONArray。因为在这里,JSONArray来自另一个库(org.json)。
我试着弄清楚gson文件。看起来我需要编写一些“Instance Creator”代码。
我想知道另一个人是否可以给我一些解决方案。谢谢。
答案 0 :(得分:1)
只需将关键字和国家/地区设为java列表类型即可。我从未见过org.json和gson混在一起。通常gson会替换org.json,但这并不意味着要一起使用。
编辑:
小例子:
class Example {
private String name;
private Integer age;
private List<String> keywords;
private List<String> countries;
public String toString() {
return new Gson().toJson(this);
}
}