Javascript 通过Reactjs以Json格式发布请求

Javascript 通过Reactjs以Json格式发布请求,javascript,java,json,reactjs,spring-boot,Javascript,Java,Json,Reactjs,Spring Boot,我必须调用一个从reactjs(前端)到spring boot(后端)的post请求。我需要知道如何通过reactjs调用下面的json请求 在SpringBoot中,我有以下课程 产品类别 @Entity @Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = { @UniqueConstraint(name = "productName",columnNa

我必须调用一个从reactjs(前端)到spring boot(后端)的post请求。我需要知道如何通过reactjs调用下面的json请求

在SpringBoot中,我有以下课程

产品类别

@Entity
@Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = {
        @UniqueConstraint(name = "productName",columnNames = "PRODUCT_NAME")
})
@Getter
@Setter
public class Product {

    @Id
    @SequenceGenerator(name = "PRODUCT_ID_GEN",sequenceName = Schema.ASSIGNDB+".PRODUCT_ID_SEQ",initialValue = 1003,allocationSize = 1)
    @GeneratedValue(generator = "PRODUCT_ID_GEN",strategy = GenerationType.SEQUENCE)
    @Column(name="PRODUCT_ID")
    private int productId;

    @Column(name = "PRODUCT_NAME",nullable = false)
    private String productName;

    @Column(name = "NUMBER_OF_UNIT",nullable = false)
    private int numberOfUnitInCartoon;

    @Column(name = "PRICE_OF_CARTOON",nullable = false)
    private double priceOfCartoon;



    @Column(name="URL_OF_IMAGE")
    private String urlOfImage;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class ProductTotal {

    private Product product;
    private int quantity;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class TotalPrice {

   private List<ProductTotal> productTotal;
   private double totalPrice;

}
@CrossOrigin(origins = "*",maxAge = 3600)
@RestController
@RequestMapping("/price")
public class PriceController {

 @PostMapping(value = "/total",consumes = {MediaType.APPLICATION_JSON_VALUE},produces = {MediaType.APPLICATION_JSON_VALUE})
    private ResponseEntity<TotalPrice> getTotalPrice(@RequestBody TotalPrice totalPrice)
    {
        if(totalPrice.getProductTotal().size()!=0)
            return new ResponseEntity<>(priceService.getTotalPrice(totalPrice),HttpStatus.OK);
        else
            throw new NullPointerException();
    }

}
ProductTotal类

@Entity
@Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = {
        @UniqueConstraint(name = "productName",columnNames = "PRODUCT_NAME")
})
@Getter
@Setter
public class Product {

    @Id
    @SequenceGenerator(name = "PRODUCT_ID_GEN",sequenceName = Schema.ASSIGNDB+".PRODUCT_ID_SEQ",initialValue = 1003,allocationSize = 1)
    @GeneratedValue(generator = "PRODUCT_ID_GEN",strategy = GenerationType.SEQUENCE)
    @Column(name="PRODUCT_ID")
    private int productId;

    @Column(name = "PRODUCT_NAME",nullable = false)
    private String productName;

    @Column(name = "NUMBER_OF_UNIT",nullable = false)
    private int numberOfUnitInCartoon;

    @Column(name = "PRICE_OF_CARTOON",nullable = false)
    private double priceOfCartoon;



    @Column(name="URL_OF_IMAGE")
    private String urlOfImage;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class ProductTotal {

    private Product product;
    private int quantity;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class TotalPrice {

   private List<ProductTotal> productTotal;
   private double totalPrice;

}
@CrossOrigin(origins = "*",maxAge = 3600)
@RestController
@RequestMapping("/price")
public class PriceController {

 @PostMapping(value = "/total",consumes = {MediaType.APPLICATION_JSON_VALUE},produces = {MediaType.APPLICATION_JSON_VALUE})
    private ResponseEntity<TotalPrice> getTotalPrice(@RequestBody TotalPrice totalPrice)
    {
        if(totalPrice.getProductTotal().size()!=0)
            return new ResponseEntity<>(priceService.getTotalPrice(totalPrice),HttpStatus.OK);
        else
            throw new NullPointerException();
    }

}
总价类

@Entity
@Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = {
        @UniqueConstraint(name = "productName",columnNames = "PRODUCT_NAME")
})
@Getter
@Setter
public class Product {

    @Id
    @SequenceGenerator(name = "PRODUCT_ID_GEN",sequenceName = Schema.ASSIGNDB+".PRODUCT_ID_SEQ",initialValue = 1003,allocationSize = 1)
    @GeneratedValue(generator = "PRODUCT_ID_GEN",strategy = GenerationType.SEQUENCE)
    @Column(name="PRODUCT_ID")
    private int productId;

    @Column(name = "PRODUCT_NAME",nullable = false)
    private String productName;

    @Column(name = "NUMBER_OF_UNIT",nullable = false)
    private int numberOfUnitInCartoon;

    @Column(name = "PRICE_OF_CARTOON",nullable = false)
    private double priceOfCartoon;



    @Column(name="URL_OF_IMAGE")
    private String urlOfImage;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class ProductTotal {

    private Product product;
    private int quantity;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class TotalPrice {

   private List<ProductTotal> productTotal;
   private double totalPrice;

}
@CrossOrigin(origins = "*",maxAge = 3600)
@RestController
@RequestMapping("/price")
public class PriceController {

 @PostMapping(value = "/total",consumes = {MediaType.APPLICATION_JSON_VALUE},produces = {MediaType.APPLICATION_JSON_VALUE})
    private ResponseEntity<TotalPrice> getTotalPrice(@RequestBody TotalPrice totalPrice)
    {
        if(totalPrice.getProductTotal().size()!=0)
            return new ResponseEntity<>(priceService.getTotalPrice(totalPrice),HttpStatus.OK);
        else
            throw new NullPointerException();
    }

}
我必须将上述格式作为post请求传递给reactjs

fetch('http://localhost:9090/price/total2',{
            method:'POST',
            headers: {'Content-Type':'application/json'},
            body: JSON.stringify({
                productTotal:{
                   // i have no idea how to write this, can anyone help
                }
            })
        }).then(res=>res.json)
        .then(result=>{
            console.log(`your result ${result}`);
        },error=>{
            this.setState({
                isLoaded:true,
                error
            })
        });

在我看来,目标应该是这个,除非我遗漏了什么:

productTotal: [
    {
      product: {
        productId: 1001
      },
      quantity: 25
    },
    {
      product: {
        productId: 1003
      },
      quantity: 15
    }
  ]

您需要像这样发送对象

{
"productTotal": [
    {
     "product":{
        "productId": 1001
     },
     "quantity":25
    },
    {
     "product":{
         "productId": 1003
     },
     "quantity":15
    }

]

    }
{ 
 "product_total": [{
     "quantity":10,
     "product": {
         "product_id": 1,
         "product_name": "name",
         "numberOfUnitInCartoon":"..."
         "price_of_cartoon": 1,
         "url_of_image": "..."
     }
 },
 ...
 ],
 "total_price":123
}