将XML解析为JSON

7

我有一个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结构文件?


“lot of data” 是什么意思? 还有,为什么要用大写字母?! - Alex Ackerman
你想用JavaScript还是JAVA来实现? - Talha Ahmed Khan
Java和JavaScript都可以。因为我使用jQuery来绘制带有价格值的折线图。使用Java,我可以解析并生成一个JSON文件,然后使用jQuery的ajax函数读取它并将其传递给绘图函数。 - SPG
2个回答

20

对于一个简单的解决方案,我推荐使用Jackson。这是一个Java库,用于生成和读取JSON,并带有一个XML扩展功能,可以使用几行简单的代码将任意复杂的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


有没有不使用第三方工具的方法? - SPG
1
@nich 不是真的。几乎任何语言都需要从某个地方获取库,尽管我相信如果您使用Groovy,则可以避免使用库,这与添加库一样费力。了解类路径,然后下载JAR:提示,请查看包名称。 - Sled
1
有关Jackson的最新下载,请参见https://github.com/FasterXML/jackson-dataformat-xml/wiki。 - Simon Forsberg

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接