Разбор XML в JSON - PullRequest
       25

Разбор XML в JSON

7 голосов
/ 19 июля 2011

У меня есть 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?

Ответы [ 2 ]

18 голосов
/ 19 июля 2011

Для простого решения я рекомендую 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 .

0 голосов
/ 19 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...