{"id":41,"date":"2007-02-02T11:59:00","date_gmt":"2007-02-02T11:59:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=41"},"modified":"2010-04-15T11:48:26","modified_gmt":"2010-04-15T09:48:26","slug":"jettison-json-dokumente-nach-dem-stax-modell-schreiben","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2007\/02\/jettison-json-dokumente-nach-dem-stax-modell-schreiben\/","title":{"rendered":"Jettison &#8211; JSON-Dokumente nach dem StAX-Modell schreiben"},"content":{"rendered":"<p>Viele JSON-Implementierungen nehmen ein direktes Mapping der Java-Objekte nach JSON vor. <a title=\"http:\/\/jettison.codehaus.org\/\" href=\"http:\/\/jettison.codehaus.org\/\">http:\/\/jettison.codehaus.org\/<\/a> geht da einen anderen Weg. Mit den aus StAX bekannten Methoden zum Schreiben\/Lesen von Elementen wird nicht in ein XML-Format &#8222;gemarshalled&#8220;, sondern in das JSON-Format. Ein Testfall f\u00fcr MappedXMLStreamWriterTest macht deutlich, was hier vor sich geht:<\/p>\n<pre class=\"prettyprint\">StringWriter strWriter = new StringWriter();\r\nMappedNamespaceConvention con = new MappedNamespaceConvention();\r\nAbstractXMLStreamWriter w = new MappedXMLStreamWriter(con, strWriter); \r\n\r\nw.writeStartDocument();w.writeStartElement(\"root\"); \r\n\r\nw.writeStartElement(\"child1\");w.writeStartElement(\"subchild1\");w.writeCharacters(\"test\");w.writeEndElement(); \r\n\r\nw.writeStartElement(\"subchild2\");w.writeCharacters(\"test\");w.writeEndElement(); \r\n\r\nw.writeEndElement(); \r\n\r\nw.writeStartElement(\"child2\");w.writeStartElement(\"subchild\");w.writeCharacters(\"test\");w.writeEndElement();w.writeEndElement(); \r\n\r\nw.writeEndElement();w.writeEndDocument(); \r\n\r\nw.close();strWriter.close(); \r\n\r\nSystem.out.println(strWriter.toString()); \r\n\r\nassertEquals(\"{\\\"root\\\":{\" +\"\\\"child1\\\":{\\\"subchild1\\\":\\\"test\\\",\\\"subchild2\\\":\\\"test\\\"},\" +\"\\\"child2\\\":{\\\"subchild\\\":\\\"test\\\"}}}\",\r\n             strWriter.toString());\r\n<\/pre>\n<p>Aus <a title=\"http:\/\/svn.jettison.codehaus.org\/browse\/jettison\/trunk\/src\/test\/java\/org\/codehaus\/jettison\/mapped\/MappedXMLStreamWriterTest.java?r=11\" href=\"http:\/\/svn.jettison.codehaus.org\/browse\/jettison\/trunk\/src\/test\/java\/org\/codehaus\/jettison\/mapped\/MappedXMLStreamWriterTest.java?r=11\">http:\/\/svn.jettison.codehaus.org\/browse\/jettison\/trunk\/src\/test\/java\/org\/codehaus\/jettison\/mapped\/MappedXMLStreamWriterTest.java?r=11<\/a>.<\/p>\n<p>Ein Servlet\/JSP w\u00fcrde statt in den StringWriter\u00a0in den response Strom schreiben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &#8222;gemarshalled&#8220;, sondern in das JSON-Format. Ein Testfall f\u00fcr MappedXMLStreamWriterTest macht deutlich, was hier vor sich geht: StringWriter strWriter = new StringWriter(); MappedNamespaceConvention con [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[4],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-open-source"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":569,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/41\/revisions\/569"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}