如何轻松地将Java图形与JSON序列化?

提问

我正在努力寻找一个库,该库将一个简单的Java对象图与JSON序列化或从JSON序列化(不需要循环引用或其他任何东西).我不想在输出中包含Java类名称,但可以包含一个额外的“ @type”:“ foo”属性.它必须与未类型化的集合和地图一起使用.我希望必须执行诸如mapper.registerType(MyClass.class,“ foo”)之类的操作来指定类型映射,但是库必须从那里获取它.有人知道这样的事吗?

最佳答案

看一下Genson,它提供了完整的数据绑定支持,具有多态和未类型化的对象,并具有许多其他功能.

// this defines aliases for classes, if you don't care of class names being
// serialized then just enabled type ser/deser using builder.setWithClassMetadata(true)
Genson genson = new Genson.Builder()
                            .addAlias("person", Person.class)
                            .addAlias("other", Some.class)
                           .create();

// serialize using with type information
String json = genson.serialize(object);

// deserializing to an unkown type based on the type information in the json string
genson.deserialize(json, Object.class);