提问者:小点点

如何将带有JSON主体的POST API调用转换为springboot中的Java类?


我正在传递一个包含配置细节的原始JSON主体的POST请求,我想将它保存为一个Java类,这样我就可以使用getter将数据分发到需要为它们指定配置细节的相关类。这是我请求的主体

{
"aisles" : 2,
"sections" : 2,
"shelves" : 1,
"packagingAreas": [ "a1.3", "a2.3" ],
"workers" : [
    {
        "name" : "rem",
        "location" : "a1.1",
        "capacity" : 20
    }
],
"items" : [
    {
        "id" : "mars",
        "name" : "Mars",
        "supplier" : "Nestle",
        "weight" : 1
    },
    {
        "id" : "kitkat",
        "name" : "Kit Kat",
        "supplier" : "Nestle",
        "weight" : 1
    },
    {
        "id" : "dd",
        "name" : "Double Decker",
        "supplier" : "Nestle",
        "weight" : 1
    }
]
}

我想把这个主体的细节放到我的Config.java类中,这就是Config.java类

public class Config {

    private static String aisles;
    private static String sections;
    private static String shelves;
    private static String packagingAreas[];
    private static ArrayList<Worker> workers;
    private static ArrayList<Item> items;

    public static String getAisles() {
        return aisles;
    }

    public static String getSections() {
        return sections;
    }

    public static String getShelves() {
        return shelves;
    }

    public static String[] getPackagingAreas() {
        return packagingAreas;
    }

    public static ArrayList<Worker> getWorkers() {
        return workers;
    }

    public static ArrayList<Item> getItems() {
        return items;
    }

}

并且我已经用与json配置文件中相同的变量对工作者和项类进行了建模,那么有没有直接的方法将这个json文件转换为类呢? 如果没有,我还可以尝试什么其他方法? 提前谢谢!

编辑-这是我使用@REST控制器创建的endpoint

@RequestMapping(value ="/config", method = RequestMethod.POST)
public void configure() {
   //i want to do the conversion here
  }

共1个答案

匿名用户

  1. 按以下步骤更新控制器
@RequestMapping(value ="/config", method = RequestMethod.POST) 
public void configure(@RequestBody Config config) {
  //your json is converted to config java object
}
public class Config {
    private String aisles;
    private String sections;
    private String shelves;
    private String packagingAreas[];
    private ArrayList<Worker> workers;
    private ArrayList<Item> items;

    public void setAisles(String aisles) {
        this.aisles = aisles;
    }

    public void setSections(String sections) {
        this.sections = sections;
    }

    public void setShelves(String shelves) {
        this.shelves = shelves;
    }

    public void setPackagingAreas(String[] packagingAreas) {
        this.packagingAreas = packagingAreas;
    }

    public void setWorkers(ArrayList<Worker> workers) {
        this.workers = workers;
    }

    public void setItems(ArrayList<Item> items) {
        this.items = items;
    }

    public String getAisles() {
        return aisles;
    }

    public String getSections() {
        return sections;
    }

    public String getShelves() {
        return shelves;
    }

    public String[] getPackagingAreas() {
        return packagingAreas;
    }

    public ArrayList<Worker> getWorkers() {
        return workers;
    }

    public ArrayList<Item> getItems() {
        return items;
    }

}