在發送 post 方法時,我很難以 JSON 格式獲得回應。我的控制器和回應類如下。我還使用了 Jackson 依賴項pom.xml,我將其@RestController用作 Controller 注釋。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<artifactId>jackson-annotations</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
<version>2.8.0</version>
</dependency>
我期望回應為 {Avalue:a, Bvalue:b} 但它回傳 null 作為回應。你能幫我找到我失蹤的地方嗎?
@RestController
public class Controller{
private PostService postService;
@RequestMapping(value = "/create", method = RequestMethod.POST, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<PostResponse> create(@RequestBody VInfo v) {
VInfo created = postService.createVInfo(v);
PostResponse pr = new PostResponse();
if (created == null) {
return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
} else {
pr.a_value= v.a_value;
pr.b_value= v.b_value;
return new ResponseEntity<PostResponse>(pr,HttpStatus.OK);
}
}
}
public class PostResponse {
@JsonProperty("Avalue")
public String A_VALUE;
@JsonProperty("Bvalue")
public String B_VALUE;
}
@Service
public class PostService {
@Autowired
private CreateVRepository postRepository;
public VInfo createVInfo(VInfo vInfo){
VInfo v1= new VInfo ();
v1.setA_VALUE(vInfo.getA_VALUE());
v1.setB_VALUE(vInfo.getB_VALUE());
postRepository.save(v1);
return v1;
}
}
我在控制器上使用了記錄器,我可以看到記錄器毫無問題地傳遞到其他括號。當我記錄我的 pr.a 和 pr.b 物件時,它們會回傳預期值。但是回應仍然回傳 null。
uj5u.com熱心網友回復:
PostResponse 類需要 getter/setter
uj5u.com熱心網友回復:
嘗試@RestController在課堂上添加注釋。
uj5u.com熱心網友回復:
您在下面的課程中有 Getter 和 Setter 嗎?
public class PostResponse {
@JsonProperty("Avalue")
public String A_VALUE;
@JsonProperty("Bvalue")
public String B_VALUE;}
uj5u.com熱心網友回復:
您將 A_VALUE 和 B_VALUE 作為類中的屬性,而您正在設定 a_value 和 b_value 的值。
當您已經擁有 starter-web 依賴項時,請自動裝配您的 PostService 類并洗掉這些(Jackson)依賴項。我還建議您在類級別使用 Lombok 的@Data 和 @NoArgsConstructor注釋。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/418165.html
標籤:
上一篇:fail()處理程式也會在HTTP200和HTTP202上觸發
下一篇:引擎蓋下的HTTPPost
