【问题标题】:MessagePack Java serializing as arrayMessagePack Java 序列化为数组
【发布时间】:2016-03-10 15:57:25
【问题描述】:

MessagePack 官方在 Java 中的实现将公共字段序列化为数组是否可以接受?

这个“像 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不能被Node解包,这意味着messagePack不是跨平台的,因此像JSON一样重复,注意)

【问题讨论】:

    标签: java json messagepack


    【解决方案1】:

    从我的 MessagePack 经验来看,它通常将对象视为 MessagePack 映射。

    它不使用任何特定于语言的结构,因此它是跨平台的。

    我认为您可能会因为您使用的库而遇到问题。你应该考虑官方的。你可以阅读更多关于它的信息here。它基本上是 Jackson 的一个扩展,它让我们直接从 MessagePack 序列化和反序列化 Java 对象并且正在工作(至少在我必须使用它时)。

    【讨论】:

    • 非常感谢,我没有考虑过 Jackson-msgpack。但是我使用的是官方实现的 msgpack-java。不管怎样,我把它留给了 GSON,我失去了一些空间,但获得了时间^^
    猜你喜欢
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 2019-02-25
    • 1970-01-01
    相关资源
    最近更新 更多