在不使用第三方库的情况下将xml字符串转换为JSON字符串

时间:2014-12-01 06:43:01

标签: java xml json string

我有一些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"
      }
   ]

}

1 个答案:

答案 0 :(得分:2)

从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。

享受。