【问题标题】:Convert xml string to JSON string without using third party libs在不使用第三方库的情况下将 xml 字符串转换为 JSON 字符串
【发布时间】:2015-01-29 03:21:07
【问题描述】:

我有一些 xml 格式的字符串,需要将其转换为 JSON 格式。我已经阅读了Quickest way to convert XML to JSON in Java,但我们不能使用任何外部库,只能使用标准 Java。

是否有任何简单或好的方法可以在没有任何第三方库的情况下实现这一目标?

这是xml字符串的样子:

<container>
     <someString>xxx</someString>     
     <someInteger>123</someInteger>     
     <someArrayElem>         
        <key>1111</key>         
        <value>One</value>     
    </someArrayElem>     

    <someArrayElem>         
    <key>2222</key>         
    <value>Two</value>     
    </someArrayElem> 
</container>

需要改成:

{

   "someString": "xxx",   
   "someInteger": "123",
   "someArrayElem": [
      {
         "key": "1111",
         "value": "One"
      },

      {
         "key": "2222",
         "value": "Two"
      }
   ]

}

【问题讨论】:

  • 有什么简单或好的方法可以做到这一点吗? 使用第三方库,是的。其他所有的方法都不好,也不简单。
  • @SotiriosDelimanolis ,好吧,我们不能使用任何库。我的格式是简单的xml,没有属性或花哨的东西,有没有使用标准java转换的api?
  • 不。另请注意,XML 元素和 JSON 成员之间没有标准的一对一映射。您必须定义转换。

标签: java xml json string


【解决方案1】:

您可以从 XSL 转换的角度来看这个问题。因此,您可以使用 JAXP,它包含在 Java SE SDK 中(没有额外的依赖项)。

  // raw xml
  String rawXml= ... ;

  // raw Xsl
  String rawXslt= ... ;

  // create a transformer
  Transformer xmlTransformer = TransformerFactory.newInstance().newTransformer(
     new StreamSource(new StringReader(rawXslt))
  );

  // perform transformation
  StringWriter result = new StringWriter();
  xmlTransformer.transform(
     new StreamSource(new StringReader(rawXml)), new StreamResult(result)
  );

  // print output
  System.out.println(result.getBuffer().toString());

您已经拥有了 XML,您现在需要的只是您的 XSL 代码。 当我发现this website 已经为我/你做了它时,我正要从头开始给你写一个。 Here 是他们制作的 XSL 文件的直接链接。

注意:这是一种单向转换。您不能使用它将 JSON 转换回 XML。

享受吧。

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 2015-10-01
    • 2013-06-04
    • 2012-10-26
    • 1970-01-01
    • 2013-03-31
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多