【问题标题】:Initialize ArrayList based on @RequestBody spring bootspring boot基于@RequestBody初始化ArrayList
【发布时间】:2020-10-01 22:14:02
【问题描述】:

我有以下代码:

@RequestMapping(value = "/checkInventory", consumes = "application/json", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<?> checkInventory (
    // HEADERS
    @RequestBody CheckInventoryRequest checkInventoryRequest) throws Exception {

    // HEADERS LOGIC

    CheckInventoryResponse checkInventoryResponse  = new CheckInventoryResponse();

JSON

{
  "supplier": "foo",
  "supplierName": "ads",
  "supplierLocation": "123",
  "site": "goo",
  "product": [
    {
      "lineItem": 1,
      "manufacturer": "TEST",
      "partNumber": "123",
    },
    {
      "lineItem": 2,
      "manufacturer": "TEST 2",
      "partNumber": "3456",
    }
  ]
}

我可以使用常规值填充 POJO,但是如何使用 product 部分创建另一个 ArrayList

我需要使用JSON 进行一些数据库检查,但我不知道如何保存ArrayList

heckInventoryResponse

import java.io.Serializable;

public class CheckInventoryResponse implements Serializable {

    private String site;
    private String supplier;
    private String supplierLocation;
    private String supplierName;

    private String lineItem;
    private String manufacturer;
    private String partNumber;

    public String getSite() {
        return site;
    }
    public void setSite(String site) {
        this.site = site;
    }
    public String getSupplier() {
        return supplier;
    }
    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }
    public String getSupplierLocation() {
        return supplierLocation;
    }
    public void setSupplierLocation(String supplierLocation) {
        this.supplierLocation = supplierLocation;
    }
    public String getSupplierName() {
        return supplierName;
    }
    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getLineItem() {
        return lineItem;
    }
    public void setLineItem(String lineItem) {
        this.lineItem = lineItem;
    }
    public String getManufacturer() {
        return manufacturer;
    }
    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }
    public String getPartNumber() {
        return partNumber;
    }
    public void setPartNumber(String partNumber) {
        this.partNumber = partNumber;
    }
}

这是我的 POJO 课程。每当调用我的端点时就可以填充它,但我似乎无法弄清楚如何使用产品部分。

【问题讨论】:

  • 添加 CheckInventoryRequest 类
  • @Prog_G 我已经有了具有这 3 个值及其 getter/setter 的类。
  • 你能分享你的 POJO 课程吗?
  • @backdoor 已更新

标签: java json spring spring-boot arraylist


【解决方案1】:

您可以为产品创建一个包含产品详细信息的类。试试下面的课程:

class CheckInventoryRequest implements Serializable{
    private String supplier;
    private String supplierName;
    private String supplierLocation;
    private String site;
    private List<Product> product;

    public CheckInventoryRequest() {
    }

    public String getSupplier() {
        return supplier;
    }

    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getSupplierLocation() {
        return supplierLocation;
    }

    public void setSupplierLocation(String supplierLocation) {
        this.supplierLocation = supplierLocation;
    }

    public String getSite() {
        return site;
    }

    public void setSite(String site) {
        this.site = site;
    }

    public List<Product> getProduct() {
        return product;
    }

    public void setProduct(List<Product> product) {
        this.product = product;
    }

}

class Product implements Serializable{
    private Integer lineItem;
    private String manufacturer;
    private String partNumber;

    public Product() {
    }


    public Integer getLineItem() {
        return lineItem;
    }

    public void setLineItem(Integer lineItem) {
        this.lineItem = lineItem;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getPartNumber() {
        return partNumber;
    }

    public void setPartNumber(String partNumber) {
        this.partNumber = partNumber;
    }

}

另外,json 字符串无效,它有额外的,。有效的 json 是

{
    "supplier": "foo",
    "supplierName": "ads",
    "supplierLocation": "123",
    "site": "goo",
    "product": [
        {
            "lineItem": 1,
            "manufacturer": "TEST",
            "partNumber": "123"
        },
        {
            "lineItem": 2,
            "manufacturer": "TEST 2",
            "partNumber": "3456"
        }
    ]
}

【讨论】:

    【解决方案2】:

    把产品作为一个单独的类,然后在这个类中创建一个项目

    List<Product> products = new ArrayList<Product>();
    

    使用 getter 和 setter

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 2017-03-28
      • 2018-03-22
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      相关资源
      最近更新 更多