Jettison – JSON-Dokumente nach dem StAX-Modell schreiben

Viele JSON-Implementierungen nehmen ein direktes Mapping der Java-Objekte nach JSON vor. http://jettison.codehaus.org/ geht da einen anderen Weg. Mit den aus StAX bekannten Methoden zum Schreiben/Lesen von Elementen wird nicht in ein XML-Format „gemarshalled“, sondern in das JSON-Format. Ein Testfall für MappedXMLStreamWriterTest macht deutlich, was hier vor sich geht:

StringWriter strWriter = new StringWriter();
MappedNamespaceConvention con = new MappedNamespaceConvention();
AbstractXMLStreamWriter w = new MappedXMLStreamWriter(con, strWriter); 

w.writeStartDocument();w.writeStartElement("root"); 

w.writeStartElement("child1");w.writeStartElement("subchild1");w.writeCharacters("test");w.writeEndElement(); 

w.writeStartElement("subchild2");w.writeCharacters("test");w.writeEndElement(); 

w.writeEndElement(); 

w.writeStartElement("child2");w.writeStartElement("subchild");w.writeCharacters("test");w.writeEndElement();w.writeEndElement(); 

w.writeEndElement();w.writeEndDocument(); 

w.close();strWriter.close(); 

System.out.println(strWriter.toString()); 

assertEquals("{\"root\":{" +"\"child1\":{\"subchild1\":\"test\",\"subchild2\":\"test\"}," +"\"child2\":{\"subchild\":\"test\"}}}",
             strWriter.toString());

Aus http://svn.jettison.codehaus.org/browse/jettison/trunk/src/test/java/org/codehaus/jettison/mapped/MappedXMLStreamWriterTest.java?r=11.

Ein Servlet/JSP würde statt in den StringWriter in den response Strom schreiben.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert