【发布时间】:2021-07-27 07:37:37
【问题描述】:
我正在使用 Spring Boot 在 Java 中开发 RESTful API。
我想做的是开发一个应该接收 JSON 值并最终返回另一个 JSON 值的端点。到目前为止我尝试过的如下。
基本实体:
package com.mycompany.layer.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BasicEntity {
private Integer Id;
private String Title;
private String Field;
private String ItemId;
private String Question;
}
主要实体:
package com.mycompany.layer.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MainEntity {
private BasicEntity[] MainData;
}
主控制器:
package com.mycompany.layer.controller;
import com.mycompany.layer.entities.MainEntity;
import org.some.model.Q;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("api/main")
public class MainController {
@PostMapping(path = "/transform",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Q> Transform(@RequestBody MainEntity mainEntity) {
Q q = new Q();
System.out.print(mainEntity); // mainEntity is null
return new ResponseEntity<>(q, HttpStatus.OK);
}
}
我正在使用 Postman 发送以下 JSON 值,但当我向端点发送请求时,服务器端的 mainEntity 始终为空:
{
"MainData": [
{
"Field": "E||D",
"Id": 2,
"Question": "Q1||Q2",
"Title": "SomeTitle",
"ItemId": "9||10"
}
]
}
【问题讨论】:
-
当使用 lombok 时,请尝试遵循变量命名约定,例如
Id应该是id,Title应该是title等等
标签: java spring spring-boot