为什么我们需要杰克逊数据绑定?

2024-01-01

我是 Spring MVC 的新手。我的问题是,为什么我们需要 jackson databind?因为我们可以收到Request Params by @ModelAttribute并通过 http PUT 或 POST 请求@RequestBody。我找不到为什么我们需要 jackson databind 将 json/xml 转换为 POJO 或反之亦然。

Thanks.


为什么我们需要杰克逊数据绑定?

因为使用 XML(或 JSON)表示结构化数据比使用简单的名称-值对要容易得多。

因为在进行AJAX时,从客户端发送和接收JSON更加方便。

因为一旦您必须在服务器端 Java 应用程序中处理发送和接收 JSON 或 XML,那么将结构化数据作为 POJO 处理会更方便。

以上几点均不代表您have to使用绑定。还有其他方法可以处理上述每种情况。但许多 Java 开发人员认为数据绑定是更好的方法:在开发人员时间方面更高效,而且更可靠。特别是当您使用复杂的 API 实现服务时。这就是为什么它们很受欢迎。


正如其他答案/评论指出的那样,如果您正在使用@RequestBody,那就是在底层使用绑定库来为您提供 POJO。就 Spring 而言,使用的是 Jackson。

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

为什么我们需要杰克逊数据绑定? 的相关文章

随机推荐

  • React/React Context API:使用 useEffect() 钩子时等待上下文值

    我正在使用 React 开发一个网络应用程序 这就是我想要做的 在最高阶组件中 检查用户是否登录 如果登录 则更新 userinfo Context 值 在 Profile js 中 获取 userinfo 上下文值 检查userinfo是
  • Resteasy 错误响应主体无法访问

    我正在使用 Quarkus 框架和 RestEasy 进行 REST 通信 当响应代码为 200 等时 一切正常 当客户端收到错误代码时 例如400 Bad Request Resteasy 返回 WebApplicationExcepti
  • 使用 N 路合并的时间复杂度

    我正在研究 2 路合并排序算法 并思考是否通过减少合并次数我们可以在时间方面获得更好的收益 例如 在 2 路合并中 我们有以下递归 T n 2T n 2 O n 时间复杂度为 N log base 2 N 如果我将问题除以 4 并合并 4
  • Go - 附加到结构上的切片不会持久[重复]

    这个问题在这里已经有答案了 我很难理解看似非常基本的操作 我想创建两个结构 其中一个结构将保存另一个结构的一部分 这是一个简单的例子来说明问题 Post structure type Post struct User string bson
  • 电子错误 AVDCreateGPUAccelerator:加载 GPU 渲染器时出错

    我正在尝试我的第一个电子应用程序 有谁知道为什么我收到此错误AVDCreateGPUAccelerator Error loading GPU renderer当我这样做时在终端npm start 目前看来还没有什么效果 我从安装一开始就使
  • 是否可以轻松地降低 ggplot 的饱和度?

    是否可以去饱和ggplot容易地 原则上 可能有两种可能的策略 首先 将一些函数应用于ggplot对象 或者 可能 Grob对象 来降低所有颜色的饱和度 二 打印的一些技巧ggplot渲染时降低饱和度 rmd文件 这两种策略对我来说都可以
  • 将字符串转换为 xsl 中的节点列表

    我目前有一个字符串 XSLT 1 0 我想将其转换为 NodeList 以便可以在以下示例中使用它 testString 表示 XML 树中的一个元素
  • Django 测试运行程序在 Ubuntu 上的 virtualenv 中失败

    我一直在努力解决 Ubuntu 14 04 上的 Python virtualenv 中安装的 Django 测试运行程序的问题 同样的软件在 MacOS 上运行良好 我认为在早期版本的 Ubuntu 上也运行良好 失败消息是 Import
  • utf-8 字符和 apache2 重写规则的问题

    我看到帖子了验证 htaccess 重写规则中的 utf 8 https stackoverflow com questions 2565864 validating utf 8 in htaccess rewrite rule我认为这很好
  • 使用 Asp.Net 主题时如何强制浏览器重新加载缓存的 CSS 文件? [复制]

    这个问题在这里已经有答案了 可能的重复 App Theme 文件夹中的 CSS 被缓存在浏览器中 https stackoverflow com questions 4517281 css in app theme folder gets
  • Discord.py 中的延迟命令

    我查看了很多地方 但找不到使用 ping 延迟 命令的方法discord py 像这样 client command pass context True async def pong ctx Somehow find pingtime aw
  • ASP.Net,母版页:每页样式表

    这些是我的假设 这些正确吗 使用 CSS 进行布局优于 使用表格 CSS 应提取到单独的文件中 而不是内联 CSS 是从 site master 中导入 链接 的 因此所有 css 都会导入 并应用于 所有 aspx 页面 鉴于此 我有一个
  • 在 data.frame 的列中填充字符串

    我有一个data frame X 有一个列A洋溢着chr 其中大部分属于nchar 5 但有些是nchar 4 我想放一个0在那些人面前 我会用以下伪代码来做到这一点 foreach element of X A as a this lin
  • jsPDF html 方法使用 addPage 在生成的 PDF 中分割页面

    我在用jsPDF s html为某些由多个段落组成的 html 生成 PDF 的方法p与每个p包含 50 500 个单词 PDF 是使用我定义的样式正确生成的 我面临的唯一问题是当内容p标签溢出到 PDF 中的新页面 剪切部分文本 如下所示
  • 如何使用sendinput函数C++

    尽管我从msdn看到了sendinput函数 但我不知道输入了什么参数 UINT WINAPI SendInput In UINT nInputs In LPINPUT pInputs In int cbSize 上面的参数是什么意思以及我
  • 使用 T-SQL 生成随机字符串

    如果您想使用 T SQL 生成伪随机字母数字字符串 您会怎么做 如何从其中排除美元符号 破折号和斜杠等字符 使用指南 SELECT randomString CONVERT varchar 255 NEWID 很短
  • 在 RSpec 测试中“let”真正节省了多少时间?

    我发现在代码中设置变量比使用变量容易得多let let很挑剔 总是告诉我错误使用的方式 当我在规范中使用简单的变量声明时 例如 tx good makeTransaction1 一切正常 但是当我使用let像这样 let tx good m
  • Django,级联移动到单独的表而不是级联删除

    我想在我们使用时保留数据delete 代替soft delete 使用 is deleted 字段 我想将数据移动到另一个表 对于已删除的行 https stackoverflow com a 26125927 433570 https s
  • 结果文档中生成空/空白命名空间声明

    我编写了一个用于将 XML 转换为 ePub 的包 一切正常 除了某些情况下 空白命名空间 xmlns 节点被写入结果文档 在转换之前 我准备了临时变量来保存主要段 即 meta body等 最后复制节点 使用xsl copy of cop
  • 为什么我们需要杰克逊数据绑定?

    我是 Spring MVC 的新手 我的问题是 为什么我们需要 jackson databind 因为我们可以收到Request Params by ModelAttribute并通过 http PUT 或 POST 请求 RequestB