将 XML 解析为 JSON

Posted

技术标签:

【中文标题】将 XML 解析为 JSON【英文标题】:Parsing XML into JSON 【发布时间】:2011-10-08 10:21:49 【问题描述】:

我有一个 XML 文件,比如

<stock><name>AXL</name><time>19-07</time><price>11.34</price></stock>
<stock><name>AIK</name><time>19-07</time><price>13.54</price></stock>
<stock><name>ALO</name><time>19-07</time><price>16.32</price></stock>
<stock><name>APO</name><time>19-07</time><price>13.56</price></stock>
...............more

如何将其解析为 JSON 结构文件?

【问题讨论】:

“大量数据”是什么意思?还有,为什么要大写?! 你想在 javascript 中还是在 JAVA 中这样做 java 和 javascript 都可以。因为我使用 jquery 绘制带有价格值的折线图。使用java,ican解析并生成一个jason文件,然后使用jquery ajax函数读取并传递给draw函数。 【参考方案1】:

对于一个简单的解决方案,我推荐Jackson,这是一个用于生成和读取带有 XML 扩展的 JSON 的 Java 库,因为它只需几行简单的代码即可将任意复杂的 XML 转换为 JSON。

input.xml

<entries>
  <stock><name>AXL</name><time>19-07</time><price>11.34</price></stock>
  <stock><name>AIK</name><time>19-07</time><price>13.54</price></stock>
  <stock><name>ALO</name><time>19-07</time><price>16.32</price></stock>
  <stock><name>APO</name><time>19-07</time><price>13.56</price></stock>
</entries>

Java 代码:

import java.io.File;
import java.util.List;

import org.codehaus.jackson.map.ObjectMapper;

import com.fasterxml.jackson.xml.XmlMapper;

public class Foo

  public static void main(String[] args) throws Exception
  
    XmlMapper xmlMapper = new XmlMapper();
    List entries = xmlMapper.readValue(new File("input.xml"), List.class);

    ObjectMapper jsonMapper = new ObjectMapper();
    String json = jsonMapper.writeValueAsString(entries);
    System.out.println(json);
    // ["name":"AXL","time":"19-07","price":"11.34","name":"AIK","time":"19-07","price":"13.54","name":"ALO","time":"19-07","price":"16.32","name":"APO","time":"19-07","price":"13.56"]
  

此演示使用Jackson 1.7.7(较新的 1.7.8 也应该可以使用)、Jackson XML Databind 0.5.3(尚不兼容 Jackson 1.8)和 Stax2 3.1.1。

【讨论】:

不使用第三方的东西有什么办法吗? @nich 不,不是。您将需要一个几乎任何语言的库,尽管我相信如果您使用 Groovy,您可能能够避免使用库,这与添加库一样多。了解类路径,然后下载 jar:提示,查看包名。 有关 Jackson 的更新下载,请参阅 github.com/FasterXML/jackson-dataformat-xml/wiki【参考方案2】:

http://keithchadwick.wordpress.com/2009/03/14/converting-xml-to-json-with-xsl-part-2/

您还没有指定语言...所以...我没有比认为“您已经拥有 XML,可能您可以访问 xsl/xslt”更具体的了:

http://www.w3.org/TR/xslt

http://www.thomasfrank.se/xml_to_json.html

【讨论】:

以上是关于将 XML 解析为 JSON的主要内容,如果未能解决你的问题,请参考以下文章

将 XML 解析为 JSON

将 XML 数据解析为 JSON

在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?

PHP - xml到json转换:“无法将字符串解析为XML”

PHP - xml 到 json 的转换:“字符串无法解析为 XML”

在 NodeJs 中使用 fast-xml-parser 将特定标签解析为数组