【问题标题】:Mapping JSON objects in Java在 Java 中映射 JSON 对象
【发布时间】:2018-11-02 10:43:36
【问题描述】:

在 Java 中映射 JSON 对象的最佳方式是什么?我说的是 JavaBeans 的 Dozer 或 MapStruct 之类的东西,但 JSON 是这样的。我找到了这两个项目:

JSON Mapper 1

JSON Mapper 2

但它们是用 Javascript 编写的。那么将它们嵌入到使用 Nashorn 运行它们的 Java 应用程序中是个好主意吗?还是使用简单的杰克逊库更好?但第二个意味着读取 JSON,将其映射到 Java 对象,然后将 Java 对象转换为另一个 JSON - 对我来说似乎不是很好。

【问题讨论】:

  • 你可以使用 json.simple 进行映射
  • 据我了解,使用这些包意味着将 JSON 转换为 Java 对象,然后再将其转换为另一个 JSON。对吗?
  • 是的,通过文档,你会得到一个想法

标签: javascript java json jackson nashorn


【解决方案1】:

您不能在 Java 中从 JSON 映射到 JSON,因为 JSON 不是本机数据类型。在某些时候,您必须将 JSON 解析为 Java 可以理解的表示形式才能使用它。

不过,您不需要将其编组为 Java 对象。您可以阅读 JSON 树(包含 Jackson、GSON 等),它将是 JSON 字符串的面向对象表示。从那里,您可以构建所需的 JSON 输出。

【讨论】:

  • 那么通过我列出的 JavaScript 库的方式呢?有意义吗?
  • 可能不会。我对它们了解不多,但是在 Java 应用程序中嵌入 JS 会带来额外的复杂性和开销,对于你需要完成的小任务来说,这几乎肯定是不值得的。
【解决方案2】:

有一些 java 库执行 JSON 映射类型的 Dozer 或 MapStruct:

Silencio

Sawmill

Jolt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2018-01-06
    • 2013-07-08
    相关资源
    最近更新 更多