Miscellaneous
More tricks!
Sometimes you may want to convert an object into a map, using the
JsonSerializer
exclude/include rules. This can be done with BeanSerializer
, in few steps like this:final Map<String, Object> map = new HashMap<String, Object>();
JsonContext jsonContext = new JsonSerializer().createJsonContext(null);
BeanSerializer beanSerializer = new BeanSerializer(jsonContext, bean) {
@Override
protected void onSerializableProperty(
String propertyName, Class propertyType, Object value) {
map.put(propertyName, value);
}
};
beanSerializer.serialize();
BeanSerializer
parse beans and match properties to all include/exclude rules. Resulting map will contain all included properties of a bean. Serializing this map or the bean should give exactly the same results!This may be handy if you have some further filtering options on some bean.
JsonWriter
is a simple class that writes JSON to the output. You can use it to construct JSON directly, without serialization:StringBuilder sb = new StringBuilder();
JsonWriter jsonWriter = new JsonWriter(sb);
jsonWriter.writeOpenObject();
jsonWriter.writeName("one");
jsonWriter.writeNumber(Long.valueOf(123));
jsonWriter.writeComma();
jsonWriter.writeName("two");
jsonWriter.writeString("UberLight");
jsonWriter.writeCloseObject();
This can be handy when e.g. you need to wrap your serialized JSON into another simple map. Instead of creating a new
Map
object you can simply use the writer with the JSON result to create the same thing, but faster.Last modified 3yr ago