問題描述
我有一個 XML 文件,比如
I have an XML file, like
<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 結(jié)構(gòu)文件?
How can I parse this into JSON structure file?
推薦答案
對于一個簡單的解決方案,我推薦 Jackson,一個 Java 庫生成和讀取帶有 XML 擴(kuò)展的 JSON,因為它可以通過幾行簡單的代碼將任意復(fù)雜的 XML 轉(zhuǎn)換為 JSON.
For a simple solution, I recommend Jackson, a Java library for generating and reading JSON with an extension for XML, as it can transform arbitrarily complex XML into JSON with just a few simple lines of code.
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 也應(yīng)該可以使用),Jackson XML Databind 0.5.3(還不兼容 Jackson 1.8)和 Stax2 3.1.1.
This demo uses Jackson 1.7.7 (the newer 1.7.8 should also work), Jackson XML Databind 0.5.3 (not yet compatible with Jackson 1.8), and Stax2 3.1.1.
這篇關(guān)于將 XML 解析為 JSON的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!