Java Jackson-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",

我一辈子都不知道如何使用jackson将这个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());
}
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());
}