问题描述
你好,我想知道在使用Spring Boot时如何将json消息映射到java中的对象.
Hello I'd like to know how I could mapp my json message to object in java when using spring boot.
让我说我正在获取json
Let's say I'm getting json like
{
"customerId": 2,
"firstName": "Jan",
"lastName": "Nowak",
"town": "Katowice"
}
,我想在我的java程序中使其成为实体:出于任何原因,我都不希望字段名匹配
and I'd like to make it entity in my java program:and for whatever reason I dont want to have match on field names
public class Customer {
//Something like @Map("customerId")
private long OMG;
//Something like @Map("firstName")
private String WTF;
//Something like @Map("lastName")
private String LOL;
//Something like @Map("town")
private String YOLO;
我找不到应该使用的注释,不是使用杰克逊,而是内置在spring boot转换器中?
I cannot find what annotation I should use, Not using jackson, just built in spring boot converter??
推荐答案
Jackson开箱即用,提供了春季启动功能.
Spring boot comes with Jackson out-of-the-box.
您可以使用@RequestBody Spring MVC批注将json字符串解编组到Java对象中...
You can use @RequestBody Spring MVC annotation to un-marshall json string to Java object... something like this.
@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);
}
}
使用@JsonProperty和相应的json字段名称注释您的实体成员元素.
Annotate your entities member elements with @JsonProperty with corresponding json field names.
public class Customer {
@JsonProperty("customerId")
private long OMG;
@JsonProperty("firstName")
private String WTF;
@JsonProperty("lastName")
private String LOL;
@JsonProperty("town")
private String YOLO;
}
这篇关于如何使用Spring Boot将JSON映射到对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!