繁体   English   中英

使用Messagepack进行序列化

[英]Serializing with Messagepack

我喜欢使用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实现此目的。 我没有使用任何注释,而是在messagepack中注册每个类。

我查看了MessagePack的文档和示例,我找不到有关嵌套序列化的任何内容,只有简单类型和地图。

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

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

对于嵌套结构,我建议使用FlexJson ; 你可以避免所有与嵌套结构相关的样板代码:

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

//get back
A obj2 = JSONDeserializer<A>().deserialize(json);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM