2012-06-19 4 views
4

Мне нравится сериализовать свой объект класса Java с помощью Messagepack. Моя классовая структура такова, чтоСериализация с помощью Messagepack

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 как к объекту базового класса. Теперь, когда я сериализую и десериализую объект класса A с Messagepack, я не могу получить объект как объект InnerDerivedClass, а скорее как объект InnerClass obj. Как я могу достичь этого, используя MessagePack. Я не использую какие-либо аннотации, поэтому я регистрирую каждый класс в пакете сообщений.

ответ

0

Я просмотрел документацию и примеры MessagePack, и я не мог найти ничего о вложенной сериализации, только простые типы и Карты.

Я рекомендую вам использовать GSON для вашей проблемы 1) Java - Gson parsing nested within nested 2) Deserializing arbitrary object json arrays in inner classes with Gson or nested inner class

Вы можете попробовать использовать JSON-SIMPLE. Он представит вам классы как вложенные Карты https://code.google.com/p/json-simple/wiki/MappingBetweenJSONAndJavaEntities

0

Для вложенных конструкций я бы рекомендовал FlexJson; вы можете избежать всех кодовых табличек кодов, связанных с вложенными структурами:

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^