JSON is not the main serialization type, supported by protostuff.
It was originally created to support protobuf, with some extensions (object graphs). JSON serialization was added later, as a "supported" serialization format. That's why there are few limitations, that do not exist in generic JSON support libraries like Jackson JSON or GSON.
Protostuff can serialize/deserialize "a message", which is an abstraction of a structure with a set of key-value pairs - fields. Field can be primitive (integer, string, etc), other message or an array. But there is no way to serialize array directly - you always need "a message".
You can define a wrapper class like this:
class Event {
public Object data;
}
With this wrapper class, you can set "data" to any arbitrary type, including List/array.
UPDATE 2016-10-04:
JSON serialization format in protostuff does not support circular references. For serializing object graphs you have to use GraphIOUtil, which uses its own binary format.