Java Jackson-json到对象
我一辈子都不知道如何使用jackson将这个json文件解析成对象 这是我的json文件:Java Jackson-json到对象,java,json,jackson,Java,Json,Jackson,我一辈子都不知道如何使用jackson将这个json文件解析成对象 这是我的json文件: { "file": "phrases", "use": "quotes", "famous_phrases": [ { "phrase1": "one for all", "phrase2": "all for one", "id": 1 }, { "phrase1": "four scores",
{
"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());
}
BufferedReader fileReader=newbufferedreader(newfilereader(“./test.json”);
ObjectMapper mapper=新的ObjectMapper();
JsonNode quotes=mapper.readValue(fileReader,JsonNode.class);
quotes=quotes.get(“著名短语”);
TypeReference短语=新的TypeReference(){};
List q=mapper.readValue(quotes.traverse(),短语);
for(短语元素:q){
System.out.println(element.getPhrase1());
}
我做了一个POJO,但我想我可能做得不对。我定义了所有属性(file、use、著名的_短语),每个属性都有自己的set和get方法。任何帮助都将不胜感激 必须定义根节点(用{}包装json代码) json文件: 豆子:
您所拥有的不是有效的JSON。它包含两个由逗号分隔的JSON对象。所以你不能解析它。你是如何获得json的?哦,我从一个需要解析的朋友那里收到的。我将尝试为整个文件添加{}。第一次使用JSON,所以我对它不太了解。谢谢,在修复我的JSON后,效果更好。谢谢你的帮助,在看到我的JSON文件不正确后,这也很有帮助。
{
"member1": {
"file": "phrases",
"use": "quotes"
},
"member2": {
"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
}
}]
}
{
"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;
}
}
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());
}