将Json在Body中映射到Model问题Spring boot

时间:2018-01-24 09:53:17

标签: java json spring-boot jackson

春季靴子的新手。

尝试从RestController中的请求主体获取json。

我将json输入传递为

{
    "something":"54545",
    "intgervalue":"1212"
}

我的模型是

public class TempClass {

    private String something_1;

    private int intgervalue_1;

    //With Getters and Setters
}

我将Rest API公开为

@RequestMapping(value = "/<PathGoesHere>", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON)
@CrossOrigin(origins = "*")
public WidgetsResponse getdashboardwidgets(@RequestBody TempClass entity) {

}

我已经研究过,如果杰克逊在班级路径上,杰克逊代表Spring会对杰森进行模型转换。

但杰克逊正在将输入json映射到模型,即使名称完全不同。

我看到实体对象具有价值,因为&#34; 54545&#34;和intgervalue_1与&#34; 1212&#34;。

我甚至尝试在POJO道具上使用注释@JsonProperty("TargetNameHere")。但仍然没有运气。

我期待着,如果Json和模特中的名字匹配,那么只有Jackson必须映射它不应该映射。

有人可以对此提供一些意见吗?

1 个答案:

答案 0 :(得分:3)

杰克逊可以自动检测来自公众获取者/制定者的属性。

在你的情况下,我假设你的setter被命名为setSomething(),因此jackson使用set方法映射值。如果不这样,则重命名setter。