【问题标题】:Convert Arbitrary JSON with invalid XML characters to XML in Java将具有无效 XML 字符的任意 JSON 转换为 Java 中的 XML
【发布时间】:2014-02-18 18:46:56
【问题描述】:

背景:

  • 我正在调用 JSON 格式的 Web API 并将它们传递给 需要 XML 格式的数据编排工具。
  • 编排工具允许自定义 Java 过程。

问题:

  • JSON 可以包含在转换为 XML 时会导致问题的元素。 例如 twitter 处理 @john: somevalue 对于 JSON 中的键很好 但是当转换为 XML somevalue 会导致 用于抛出错误的编排工具。
  • 我遇到了各种经常变化的 Web API。我需要 能够将任意 JSON 转换为 XML,几乎无需维护。

迄今为止的研究:

  • 我已经找到了几种在 Java 中将 JSON 转换为 XML 的方法,但其中很多都是针对固定输入结构的。
  • 这个StackOverflow post 似乎是我想要的,但我在让它工作和跟踪所有所需的 JAR 时遇到了问题。
  • 我看到一些库会对 &、、' 和 " 进行一些基本的字符转义。有没有更健壮的?

【问题讨论】:

  • 您可以使用一些不需要将 JSON 属性名称转换为 XML 标记的 XML 公式。例如 ...
  • @Henry 你有关于 的文档吗?
  • 对我来说听起来像是一个简单的编程问题。假设“另一端”不需要理解它们,您可以定义自己的转义模式。如果你小心的话,你可以在解析之前对 JSON 字符串进行转义处理。
  • 你试过jettison吗?至少它可以处理 @attribute 的东西,(作为 XML 属性)。

标签: java xml json


【解决方案1】:

我最终反序列化 JSON 并使用以下正则表达式遍历数据以查找节点,然后删除或替换非拉丁字符。

抓取 JSON 节点的正则表达式

"(.*?)":

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2021-10-31
    相关资源
    最近更新 更多