将 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的主要内容,如果未能解决你的问题,请参考以下文章
在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?
PHP - xml到json转换:“无法将字符串解析为XML”