4

我喜欢使用Messagepack序列化我的 java 类对象。我的班级结构是这样的

public class A
 {
   private InnerClass obj;
   //Some other variables with getters and setters.
   // There will be a getter and setter for obj(InnerClass) aswell.
 }
 class InnerClass
 {
  //Some variables with getters and setters.
 }
 class InnerDerivedClass extends InnerClass
 {
  //some variables with getters and setters.
 }

我喜欢做的是为 InnerDerivedClass 创建对象并为其分配一些值。然后我会将对象作为基类对象添加到 A 类中。现在,当我使用 Messagepack 序列化和反序列化 A 类对象时,我无法将对象作为 InnerDerivedClass 对象获取,而是作为 InnerClass obj 来获取。如何使用 MessagePack 实现这一点。我没有使用任何注释,而是在消息包中注册每个类。

4

2 回答 2

0

我查看了 MessagePack 的文档和示例,但找不到任何关于嵌套序列化的信息,只有简单类型和 Maps。

我建议您使用 GSON 来解决您的问题 1) Java - Gson 解析嵌套在嵌套中 2)使用 Gson 或嵌套内部类反序列化内部类中的任意对象 json 数组

您可以尝试使用 JSON-SIMPLE。它会将您的类表示为嵌套地图 https://code.google.com/p/json-simple/wiki/MappingBetweenJSONAndJavaEntities

于 2013-09-02T10:30:48.793 回答
0

对于嵌套结构,我推荐FlexJson;您可以避免所有与嵌套结构相关的样板代码:

A obj1 = new A()
String json = JSONSerializer().deepSerialize(obj1);

//get back
A obj2 = JSONDeserializer<A>().deserialize(json);
于 2013-10-15T15:17:00.700 回答