2011-07-19 19 views
7

Mam plik XML, jakPrzetwarzanie XML do JSON

<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 

Jak mogę analizować to do pliku JSON struktury?

+0

Co masz na myśli przez "wiele danych"? Dlaczego czapki ?! –

+1

W jakim języku lub systemie? –

+0

Czy chcesz to zrobić w JavaScript LUB w JAVA –

Odpowiedz

18

dla prostego rozwiązania, polecam Jackson, bibliotekę Java do tworzenia i czytania JSON z rozszerzeniem dla XML, jak można go przekształcić dowolnie złożony XML do JSON z kilkoma prostymi liniami kodu.

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> 

Kodeks 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"}] 
    } 
} 

To demo wykorzystuje Jackson 1.7.7 (nowsza 1.7.8 powinny również działać), Jackson XML Databind 0.5.3 (jeszcze nie jest kompatybilny z Jackson 1.8) i Stax2 3.1.1.

+0

Czy to w jakikolwiek sposób, bez użycia rzeczy trzeciej części? – nich

+1

@nich Nie, niezupełnie. Będziesz potrzebował biblioteki z dowolnego miejsca w prawie każdym języku, chociaż wydaje mi się, że możesz uniknąć używania biblioteki, w której używałeś Groovy, co wymaga tyle samo wysiłku, co dodanie biblioteki. Dowiedz się więcej o ścieżce klas, a następnie pobierz słoiki: podpowiedź, spójrz na nazwy pakietów. – ArtB

+1

Aby pobrać najnowsze wersje aplikacji Jackson, zobacz https://github.com/FasterXML/jackson-dataformat-xml/wiki –

Powiązane problemy