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

时间:2013-05-24 17:13:34

标签: java json serialization

我正在努力寻找一个库,它将Java对象的简单图形序列化为JSON(不需要循环引用或任何东西)。我不想在输出中有Java类名,但包括一个额外的“@type”:“foo”属性没问题。它必须适用于无类型的集合和映射。我希望必须执行mapper.registerType(MyClass.class,“foo”)之类的操作来指定类型映射,但库必须从那里获取它。有谁知道这样的事情?

3 个答案:

答案 0 :(得分:2)

杰克逊应该能够处理你想要做的事情。查看此链接中的示例,特别是#4用于多态类型反序列化

Jackson

Polymorphic Type Handling

Examples

答案 1 :(得分:1)

你搜索这样的东西吗?

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

  

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

...

  

用法

     

json-io可以直接在JSON Strings或Java的Streams上使用。

答案 2 :(得分: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);