Принято ли поведение, что официальная реализация MessagePack в Java сериализует публичные поля в виде массивов?MessagePack Java serializing as array
В какой вселенной это «как JSON»?
Мой случай: У меня есть простой класс, например, так:
@Message
public class MySuperClass(){
public int mySuperID; // let's say 4
public byte[] mySuperData; // let's say nothing
public String mySuperType; // let's say null
public String mySuperExtra; // let's say HI!
public MySuperClass(){}
// other constructors
}
И я просто сериализации с
MessagePack msgpack = new MessagePack();
msgpack.write(mySuperInstance);
И посылая что к дальнему сервера, написанного в NodeJS.
Node JS может легко распаковать его,
['HI!', �, 4, null]
Это означает, что MessagePack не что иное, как JSON, поскольку он анализирует Java объекты как массивы, а затем только повторно заполняет их в алфавитном порядке!
У кого-нибудь есть решение, которое не включает отображение каждого объекта, который у меня есть? (Также HashMap не распаковывается узлом, что означает, что messagePack не является межплатформенным, поэтому повторяется, отмечая, как JSON)
Большое спасибо, я не рассматривал Jackson-msgpack. Однако я использовал msgpack-java, официальную реализацию. В любом случае, я оставил его для GSON, я теряю некоторое пространство, но получаю вовремя ^^ –