package de.jpaw.bonaparte.util.impl; import de.jpaw.bonaparte.core.BonaPortable; import de.jpaw.bonaparte.core.JsonComposer; import de.jpaw.bonaparte.core.MapParser; import de.jpaw.bonaparte.core.MimeTypes; import de.jpaw.bonaparte.core.StaticMeta; import de.jpaw.bonaparte.util.IMarshaller; import de.jpaw.json.JsonParser; import de.jpaw.util.ApplicationException; import de.jpaw.util.ByteArray; import de.jpaw.util.ByteBuilder; public class RecordMarshallerJson implements IMarshaller { @Override public String getContentType() { return MimeTypes.MIME_TYPE_JSON; } @Override public ByteArray marshal(BonaPortable request) { return ByteArray.fromString(JsonComposer.toJsonString(request)); // return ByteArray.fromString(BonaparteJsonEscaper.asJson(request)); } @Override public BonaPortable unmarshal(ByteBuilder buffer) throws ApplicationException { final JsonParser jp = new JsonParser(new String(buffer.getCurrentBuffer(), 0, buffer.length(), ByteArray.CHARSET_UTF8), false); return MapParser.asBonaPortable(jp.parseObject(), StaticMeta.OUTER_BONAPORTABLE); } }