Spring Boot 自动将 JSON 转换为控制器中的对象

2024-04-27

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

    <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>

我的控制器有一个方法如下:

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

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

我在控制器上自动反序列化错过了什么?


Spring Boot 附带了开箱即用的 Jackson,它将负责将 JSON 请求正文解封为 Java 对象

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

Example

@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 字段名称来注释您的实体成员元素。

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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 自动将 JSON 转换为控制器中的对象 的相关文章

随机推荐

  • 为什么“(def 元音?(set“aeiou”))”有效?

    我正在看优秀的 Clojure 教程here http ociweb com jnb jnbMar2009 html 在其中一个示例中 它具有如下所示的 Clojure 代码 def vowel set aeiou 这使得元音对于元音返回
  • 如何在vim中的相同行数前面插入多行?

    假设我有两个文本块 其中之一在我的剪贴板中 one two three 另一个位于我正在 vim 中编辑的文件中 AAA BBB CCC 如何在第二个块前面插入第一个块以获得以下结果 oneAAA twoBBB threeCCC 我希望有一
  • html5 下载属性在 FF 中不起作用

    您好 我有一个带有下载属性的锚标记 单击该标记时将从 href 中定义的 url 下载图像 这在 Chrome 中工作正常 但在 Firefox 中它需要浏览器中的图像 有什么办法可以让我们在 FF 中实现这一点吗 a href https
  • BlazorNotifyAuthenticationStateChanged 不会更新基于授权的元素

    我正在实施一个自定义AuthenticationStateProvider并在 mainLayout 中使用来自用户声明的信息 据我了解执行后NotifyAuthenticationStateChanged方法本身应该重新渲染所有使用的组件
  • 带有图像或路径的自定义滑块

    我的 WP7 应用程序中有一个滑块 我想重新设计它的样式 我的默认模板有问题 我做了类似的事情 但我无法将拇指 绑定 到该值
  • R 中独立环境的源脚本,而不是全局环境

    有没有办法source 一个脚本在R这样它就作为父环境附加到全局环境 GlobalEnv 目前 当我获取脚本时 该脚本的所有变量和函数都会出现在我的全局 交互式 环境中 我想将这些变量和函数包含在搜索路径中 但不包含在 GlobalEnv
  • Mockito-thenReturn(true) 仍然在模拟对象上返回 false

    我最近开始阅读有关 Mockito 的内容 根据我的理解 以下代码行必须返回 true 但它返回 false 测试班 public class PersonServiceImplTest Car car InjectMocks CarSer
  • 如何检测 JavaScript 中的哈希值后 URL 是否已更改

    如何在 JavaScript 中检查 URL 是否已更改 例如 像 GitHub 这样使用 AJAX 的网站将在 符号后附加页面信息 以创建唯一的 URL 而无需重新加载页面 检测此 URL 是否发生变化的最佳方法是什么 Is the on
  • 何时何地获取腕表复杂功能的数据

    经过几天的复杂工作后 我有信心对按规定间隔发生的更新的更新过程进行以下说明 The system calls requestedUpdateDidBegin This is where you can determine if your d
  • 用户 postgres 启动进程使所有 CPU 达到 100% 使用率

    用户 postgres 正在运行一个进程 该进程在 centos 机器上以 100 使用率占用所有 CPU postgresql 服务未运行 因此它不能是查询 当我尝试停止该进程时 它会自行重新启动 然后进程的名字就有点奇怪了 恭喜 通过将
  • 在 swift 中将参数传递给 #selector 方法[重复]

    这个问题在这里已经有答案了 我想在单击图像时将多个参数传递给函数 这是我的代码 var param1 120 var param2 hello var param3 world let image UIImage UIImage named
  • 为什么Go中可以在多个return语句中重新定义err

    考虑下面的示例来说明这个问题 它只是为了解释这个问题而构建的 但我在书中以及实际项目中都看到了类似的代码 package main import strconv fmt log func main n1 err strconv Atoi 1
  • 小部件预览图像

    My app preview image looks like this 我怎样才能让它看起来像 WhatsApp 聊天预览 小有阴影 我手机中的其他应用程序也使用相同类型的预览 我的小部件 xml
  • 如何实现一个“更好”的Finally Rx操作符?

    最近我意识到 RxFinally https learn microsoft com en us previous versions dotnet reactive extensions hh212133 v vs 103 操作符的行为方式
  • 响应中的“Access-Control-Allow-Credentials”标头为“”,必须为“true”

    我在后端使用 Node Express 在客户端使用 Angular4 这给了我以下错误 XMLHttpRequest 无法加载http localhost 4876 登录 检查 http localhost 4876 login chec
  • 如何使用 Python GZip 模块压缩文件夹?

    我正在创建压缩文件 文件夹的 Python 软件 我将如何创建一段代码 要求用户输入文件夹位置 然后对其进行压缩 我目前拥有单个文件的代码 但没有包含完整文件的文件夹 请详细解释如何执行此操作 将文件夹压缩为 tar 文件的代码是 impo
  • Keras,训练模型后如何预测?

    我正在使用 reuters example 数据集 它运行良好 我的模型已经过训练 我阅读了有关如何保存模型的信息 以便稍后加载它以再次使用 但如何使用这个保存的模型来预测新文本呢 我用吗models predict 我必须以特殊方式准备这
  • Oracle SQL 上的条件 SUM

    我通过以下方式获得数据 ITEM LOCATION UNIT RETAIL QUANTITY 100 KS 10 10 200 KS 20 30 我想要正数量的总和 数量 gt 0 和负数量的总和 数量 如何根据条件获得这些列的总和 您可以
  • 如何选择 UITextField?

    我想在 UITableView 中编辑用户的用户名 我向 UITableViewCell 添加了一个 UITextField 这似乎工作得很好 但是当用户触摸单元格 甚至在文本字段之外 时 他希望进行编辑 如何以编程方式选择文本字段 代码看
  • Spring Boot 自动将 JSON 转换为控制器中的对象

    我有具有该依赖项的 Spring Boot 应用程序