Jackson JsonNode 到类型化集合

2024-01-05

转换杰克逊的正确方法是什么JsonNode到java集合?

如果它是一个 json 字符串我可以使用ObjectMapper.readValue(String, TypeReference)但对于一个JsonNode唯一的选择是ObjectMapper.treeToValue(TreeNode, Class)这不会给出类型化的集合,或者ObjectMapper.convertValue(Object, JavaType)由于它接受任何 POJO 进行转换,所以感觉不对。

还有另一种“正确”的方法还是其中之一?


获得一个ObjectReader https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/ObjectReader.html with ObjectMapper#readerFor(TypeReference) https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/ObjectMapper.html#readerFor(com.fasterxml.jackson.core.type.TypeReference)用一个TypeReference http://fasterxml.github.io/jackson-core/javadoc/2.7/com/fasterxml/jackson/core/type/TypeReference.html?is-external=true描述您想要的类型化集合。然后使用ObjectReader#readValue(JsonNode) https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/ObjectReader.html#readValue(com.fasterxml.jackson.databind.JsonNode)来解析JsonNode https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/JsonNode.html(大概是一个ArrayNode https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/node/ArrayNode.html).

例如,要获得List<String>来自仅包含 JSON 字符串的 JSON 数组

ObjectMapper mapper = new ObjectMapper();
// example JsonNode
JsonNode arrayNode = mapper.createArrayNode().add("one").add("two");
// acquire reader for the right type
ObjectReader reader = mapper.readerFor(new TypeReference<List<String>>() {
});
// use it
List<String> list = reader.readValue(arrayNode);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jackson JsonNode 到类型化集合 的相关文章

随机推荐

  • 用于从 Spring Data Jpa 中的多个表中获取数据的自定义查询

    实体正在关注 产品表 Entity public class Product implements Serializable Id GeneratedValue strategy GenerationType AUTO private In
  • Python定时器倒计时

    我想了解Python中的定时器 假设我有一个类似的代码片段 def abc print Hi print Hello print Hai 我想每 1 秒打印一次 最多三次 即 第一秒我需要检查 printf 第二秒我也需要在第三秒检查 在我
  • 获取 Windows XP 上现有 USB 设备的 GUID

    我需要找到连接到 Windows XP 系统的现有 USB 设备的 GUID 如何使用 WMI 或注册表来完成此操作 或者 我还应该探索其他途径吗 谢谢 附加信息 我需要找到特定已知设备的 GUID 预计不会改变 如果我需要编写一个小程序
  • 为什么我的包含 JSON 的 cookie 偶尔会出现格式错误

    我们使用 cookie 来获取有关我们网站访问者的一些非敏感便利数据 我们发出三个值 1 创建日期 以刻度为单位 2 用户数据 JSON序列化 3 验证哈希 我们看到相当多的请求只包含半个 cookie 它们包含完整的日期和截断的用户数据
  • 带有回调的 JavaScript 中的 While 循环

    我正在尝试编写此处给出的伪代码https dev twitter com docs misc cursoring https dev twitter com docs misc cursoring使用 javascript 使用 node
  • 为什么 Mule 例外策略这么啰嗦?

    在我的 Mule 应用程序中 我已将一些流程配置为使用捕获异常策略来执行一些特殊处理 对于这些情况 我想将错误和原始有效负载弹出到对象存储中 在其他地方 默认的异常策略就很好
  • iOS:启动具有多个收件人的消息应用程序

    我正在尝试对其进行设置 以便我的用户可以向一群人发送文本 现在有了电子邮件就很简单了 URL 方案就是mailto email protected cdn cgi l email protection email protected cdn
  • 版本控制和发布管理

    是否有任何所谓的 版本控制系统 也支持实际的发布管理 部署 我曾经工作过的大型机商店有一个自动发布管理工具 它不仅可以控制对源代码的并发修改 还可以处理编译器 预编译器 数据库绑定实用程序等的运行 使其成为我们的全自动部署工具也是如此 我的
  • 如何优化SQLcipher性能?

    我使用 SQLCipher 在我的应用程序中加密 sqlite 数据库 一切正常 但我的应用程序在获取数据库期间运行缓慢 我更改了PRAGMA kdf iter到 4000 仍然很慢 加密之前我没有任何问题 NSError openData
  • IN 关键字的 Spring Data JPA hibernate 集合

    我正在尝试使用 Spring 数据存储库中的自定义查询来获取记录 我想使用 IN 关键字根据嵌套对象的 id 来获取对象 以下是我的回购课程 public interface BusinessRepository extends JpaRe
  • Android 应用程序上出现 DeadObjectException

    有时我会开始一个Activity我的应用程序 或之间快速切换Fragments of a ViewPager这是在那个特定的Activity I got DeadObjectException像这样 W ActivityManager 66
  • scipy 中最小二乘函数雅可比行列式的方法签名

    任何人都可以提供一个向 a 提供雅可比行列式的示例吗 最小二乘函数 http docs scipy org doc scipy reference generated scipy optimize leastsq html scipy op
  • 在php中从另一个数组创建一个数组[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个看起来像这样的数组 这是一个二维数组 MainArray Array 0 gt Array Job Name gt WXYZ Qua
  • 如何将同名文件上传到Amazon S3并覆盖现有文件?

    s3 putObject Bucket bucketName Key fileName Body file ACL bucket owner full control function err data if err console log
  • setOnCheckedChangeListener 参数

    RadioGroup radioGroup RadioGroup findViewById R id orientation radioGroup setOnCheckedChangeListener new RadioGroup OnCh
  • Proguard minifyEnabled 对于调试构建为 true,不适用于 Lollipop 之前的版本

    我的应用程序的方法计数高于 64k 限制 因此我使用 Proguard 来减少它 发布版本一切正常 另一方面 调试版本仅对 Lollipop 设备成功 在棒棒糖之前的设备上启动时 我总是遇到臭名昭著的错误 com android dex D
  • PHP MySQL 查询不插入

    我在尝试将查询插入数据库时 遇到一些问题 我有这个 php 表单 应该执行插入查询 但没有任何反应 甚至没有错误 这是一个具有以下形式的示例查询 INSERT INTO FlashVideoList title urltitle descr
  • dompdf内存问题

    我正在使用 DOMPDF 从一个脚本生成大约 500 份报告 生成大约 10 15 个 PDF 后 内存不足 在调试中 看起来每次加载字体时都会加载 8M 但这似乎应该用字体缓存代码来处理 对这里出了什么问题有什么想法吗 我想发布一个简单的
  • Angular2:可观察内部的变化检测

    只是我用 Angular2 RC3 使用 Angular CLI 尝试了我的第一个应用程序 但我对此迷失了 我对变量的 更改检测 有疑问word 我更新了word里面的变量subscribeObservable 的方法 但没有检测到任何变化
  • Jackson JsonNode 到类型化集合

    转换杰克逊的正确方法是什么JsonNode到java集合 如果它是一个 json 字符串我可以使用ObjectMapper readValue String TypeReference 但对于一个JsonNode唯一的选择是ObjectMa