java - 将 Body 中的 Json 映射到 Model 问题 Spring boot

标签 java json spring-boot jackson

Spring Boot 新手。

尝试从 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) {

}

我研究过,如果 Jackson 位于类路径中,则该 json 到模型的转换由 Jackson 代表 Spring 负责。

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

我看到实体对象的值是,something_1 为“54545”,intgervalue_1 为“1212”。

我什至尝试在 POJO 属性上使用注释 @JsonProperty("TargetNameHere") 。但还是没有运气。

我期望,如果 Json 中的名称和模型中的名称匹配,那么只有 Jackson 必须映射它,否则不应映射。

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

最佳答案

Jackson 可以自动检测公共(public) getter/setter 的属性。

在你的例子中,我假设你的setter被命名为setSomething(),因此jackson使用set方法映射值。如果您不这样做,那么 setter 将被重命名。

关于java - 将 Body 中的 Json 映射到 Model 问题 Spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419419/

相关文章:

javascript - 在 React JavaScript 中显示/映射嵌套 JSON 字段

java - 如何在 spring boot 中将 yaml 列表绑定(bind)到 java 列表?

java - Spring ClassPathResource - 无法打开,因为它不存在

java - InputStream "int read(byte[] b)"方法参数是引用吗?

java - 为什么 trimToSize/ensureCapacity 方法提供 'public' 级别的访问权限?

java - Guava ImmutableMap 会推迟 Map 调整大小吗?

java - 如何使用 Play 转换 Java 对象以供 jqplot 使用! 2.0?

java排序节点列表示例

java - 快速解析具有较大可跳过区域的 JSON

java - GetMapping 使用 Spring Boot 生成 CSV 文件