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:
1
final Map<String, Object> map = new HashMap<String, Object>();
2
​
3
JsonContext jsonContext = new JsonSerializer().createJsonContext(null);
4
​
5
BeanSerializer beanSerializer = new BeanSerializer(jsonContext, bean) {
6
@Override
7
protected void onSerializableProperty(
8
String propertyName, Class propertyType, Object value) {
9
map.put(propertyName, value);
10
}
11
};
12
​
13
beanSerializer.serialize();
Copied!
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:
1
StringBuilder sb = new StringBuilder();
2
JsonWriter jsonWriter = new JsonWriter(sb);
3
​
4
jsonWriter.writeOpenObject();
5
jsonWriter.writeName("one");
6
jsonWriter.writeNumber(Long.valueOf(123));
7
jsonWriter.writeComma();
8
jsonWriter.writeName("two");
9
jsonWriter.writeString("UberLight");
10
jsonWriter.writeCloseObject();
Copied!
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 1yr ago
Export as PDF
Copy link