我一辈子都无法弄清楚如何使用杰克逊将该json文件解析为对象。
这是我的json文件:
{
"file": "phrases",
"use": "quotes",
"famous_phrases": [
{
"phrase1": "one for all",
"phrase2": "all for one",
"id": 1
},
{
"phrase1": "four scores",
"phrase2": "and seven years ago",
"id": 17
},
{
"phrase1": "elementary",
"phrase2": "my dear watson",
"id": 22
}
]
}
我尝试了这个:
BufferedReader fileReader = new BufferedReader(new FileReader("./test.json"));
ObjectMapper mapper = new ObjectMapper();
JsonNode quotes = mapper.readValue(fileReader, JsonNode.class);
quotes = quotes.get("famous_phrases");
TypeReference<List<Quotes>> phrases = new TypeReference<List<Quotes>>(){};
List<Quotes> q = mapper.readValue(quotes.traverse(), phrases);
for (Phrases element : q) {
System.out.println(element.getPhrase1());
}
我制作了POJO,但我认为我可能做错了POJO。我定义了所有属性(文件,用法,famous_phrases),每个属性都有自己的set和get方法。任何帮助,将不胜感激!
json文件:
{
"file": "phrases",
"use": "quotes",
"famous_phrases": [
{
"phrase1": "one for all",
"phrase2": "all for one",
"id": 1
},
{
"phrase1": "four scores",
"phrase2": "and seven years ago",
"id": 17
},
{
"phrase1": "elementary",
"phrase2": "my dear watson",
"id": 22
}
]
}
豆子:
public class Quotes {
private String file;
private String use;
private List<Phrases> famous_phrases;
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
public String getUse() {
return use;
}
public void setUse(String use) {
this.use = use;
}
public List<Phrases> getFamous_phrases() {
return famous_phrases;
}
public void setFamous_phrases(List<Phrases> famous_phrases) {
this.famous_phrases = famous_phrases;
}
}
public class Phrases {
private String phrase1;
private String phrase2;
private String id;
public String getPhrase1() {
return phrase1;
}
public void setPhrase1(String phrase1) {
this.phrase1 = phrase1;
}
public String getPhrase2() {
return phrase2;
}
public void setPhrase2(String phrase2) {
this.phrase2 = phrase2;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
读取json文件:
BufferedReader fileReader = new BufferedReader(new FileReader("./test.json"));
ObjectMapper mapper = new ObjectMapper();
Quotes quotes = mapper.readValue(fileReader, Quotes.class);
for (Phrases element : quotes.getFamous_phrases()) {
System.out.println(element.getPhrase1());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句