Miscellaneous

More tricks!

Convert bean to map

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.

Use JsonWriter

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 updated