3

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

4

3 回答 3

2

杰克逊应该能够处理你正在尝试做的事情。查看此链接中的示例,尤其是多态类型反序列化的#4

杰克逊

多态类型处理

例子

于 2013-05-24T17:25:15.587 回答
1

看看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);
于 2013-05-24T19:12:48.113 回答
1

你搜索这样的东西吗?

http://code.google.com/p/json-io/

json-io 由两个主要类组成,一个读取器(JsonReader)和一个写入器(JsonWriter)。有第三个严格的测试类(TestJsonReaderWriter)。json-io 消除了使用 ObjectInputStream / ObjectOutputStream 序列化 Java 的需要,而是使用 JSON 格式。

...

用法

json-io 可以直接用于 JSON 字符串或 Java 的 Streams。

于 2013-05-24T17:26:16.263 回答