gpt4 book ai didi

java - Spring Boot 自动 JSON 到 Controller 中的对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:55 30 4
gpt4 key购买 nike

我有具有该依赖项的 SpringBoot 应用程序:

    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

我的 Controller 有一个方法如下:

@RequestMapping(value = "/liamo", method = RequestMethod.POST)
@ResponseBody
public XResponse liamo(XRequest xRequest) {
...
return something;
}

我通过 AJAX 从我的 HTML 发送一个 JSON 对象,其中包含一些 XRequest 类型对象的字段(它是一个没有任何注释的普通 POJO)。但是,我的 JSON 未在我的 Controller 方法中构建为对象,并且其字段为空。

我想念我的 Controller 的自动反序列化是什么?

最佳答案

Spring Boot 带有开箱即用的 Jackson,它将负责将 JSON 请求主体解封为 Java 对象

您可以使用 @RequestBody Spring MVC 注释将 JSON 字符串反序列化/解码为 Java 对象...例如。

例子

@RestController
public class CustomerController {
//@Autowired CustomerService customerService;

@RequestMapping(path="/customers", method= RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public Customer postCustomer(@RequestBody Customer customer){
//return customerService.createCustomer(customer);
}
}

使用带有相应 json 字段名称的 @JsonProperty 注释您的实体成员元素。

public class Customer {
@JsonProperty("customer_id")
private long customerId;
@JsonProperty("first_name")
private String firstName;
@JsonProperty("last_name")
private String lastName;
@JsonProperty("town")
private String town;
}

关于java - Spring Boot 自动 JSON 到 Controller 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40247556/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com