如何使用 Jackson 从 Json 文件中读取特定对象

dav*_*-so 2 java jackson

假设我想直接从 a 读取对象水果Json file并将其存储到Fruit.class. 我该怎么做?

{
  "fruits": [
    { "name":"Apple", "price":"0.8"}
  ],
  "vegetables": [
    { "name":"Carrot", "price":"0.4"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的模型 class

public class Fruit {
    private String name;
    private double price;

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public double getPrice() { return price; }
    public void setPrice(double price) { this.price= price; }
}
Run Code Online (Sandbox Code Playgroud)

我试过的:

String file = "src/main/resources/basket.json";
String json = new String(Files.readAllBytes(Paths.get(file)));
objectMapper.readValue(json, Fruit.class);
Run Code Online (Sandbox Code Playgroud)

Pan*_*kos 6

您的 json 必须与您尝试转换的内容相匹配。在你的情况下,你需要

public class FruitWrapper {

   private List<Fruits> fruits;
   private List<Fruits> vegetables;

   getters, setters...

   }
Run Code Online (Sandbox Code Playgroud)

那么这对你有用

 FruitWrapper fruitWrapper =  objectMapper.readValue(json, FruitWrapper.class);
Run Code Online (Sandbox Code Playgroud)