我需要在java中以以下格式反序列化json的帮助:
数据.json
{
"tokens":[
{
"position":1,
"text":"hello",
"suggestions":[
{
"suggestion":"hi",
"points":0.534
},
{
"suggestion":"howdy",
"points":0.734
}
]
},
]
}
我创建了两个类,一个称为token,另一个称为suggestion,属性与json格式匹配。
令牌.java
public class Token {
private int position;
private String text;
private List<Suggestion> suggestions;
public Token(int position, String text, List<Suggestion> suggestions) {
this.position = position;
this.text = text;
this.suggestions = suggestions;
}
}
建议.java
public class Suggestion {
private String suggestion;
private double points;
public Suggestion(String suggestion, double points) {
this.suggestion = suggestion;
this.points = points;
}
}
如何将json“解压”到一个令牌列表中,每个令牌都有两个必需的字符串和一个建议对象列表作为其属性(理想情况下,它将使用gson库)
我试过了,但没用:
Gson gson = new Gson();
Type listType = new TypeToken<List<Token>>(){}.getType();
List<Token> tokenList = gson.fromJson(jsonString, listType);
System.out.println(tokenList.get(0));
谢谢
3条答案
按热度按时间inn6fuwd1#
你必须创建另一个类,比如说
Output
作为然后使用
然后可以使用输出来获取
tokens
再往前走suggestion
等jv4diomz2#
你可以用Jackson的
TypeReference
为此,例如:你可以阅读更多关于
TypeReference
在这里。oknwwptz3#
如果您使用jackson,那么应该在上述字段中使用@jsonproperty。尝试按以下方式编写文件:
公共类令牌{
}
公开课建议{
}