Hi.
I also ended up writing my own JSON serializer/deserializer based on delphi TJsonObject. (Using another JSON class created incompatibilities with RTL).
It works on generics (TDictionary<>, TObjectDictionary<>, Tlist<>, etc), Tdataset, TStringList, enum and nested classes. Quite fast.
I needed a special TDataset handling (speed wise) that none of the library I tried solved.
Anyway, sometimes it's worth reinventing the wheel!