/* Transit - Remote procedure calls made simple Copyright (c) 2012 Ulrich Hilger This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package de.uhilger.transit; import java.io.Writer; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver; import com.thoughtworks.xstream.io.json.JsonWriter; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; /** * Java-Objekte in die JavaScript Object Notation (JSON) * verwandeln und umgekehrt * * Dieser Wandler erzeugt ein strukturiertes und gut lesbares JSON-Format, * bei dem das Wurzelelement weggelassen wird. Im Falle einer Liste wird * damit z.B. der Inhalt ohne umschliessendes *
{"List": [ ]}
* erezeugt. * *

Diese Klasse benoetigt die Java-Klassenbibliotheken * XStream * und Jettison * im Classpath.

* * @author Copyright (c) Ulrich Hilger, http://uhilger.de * @author Published under the terms and conditions of * the GNU Affero General Public License * * @version 1, September 16, 2012 */ public class JsonFlatWandler extends AbstractWandler { /** Bezeichnerdes Formats, das dieser Wandler unterstuetzt */ public static final String FORMAT_FLATJSON = "FLATJSON"; protected XStream getXStream() { //XStream xstream = new XStream(new JettisonMappedXmlDriver()); XStream xstream = new XStream(new JsonHierarchicalStreamDriver() { public HierarchicalStreamWriter createWriter(Writer writer) { return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE); } }); return xstream; } /** * Das Format ermitteln, das dieser Wandler verarbeitet * @return das Format, das dieser Wandler verarbeitet */ @Override public String getFormat() { return FORMAT_FLATJSON; } }