簡體   English   中英

MessagePack Java序列化為數組

[英]MessagePack Java serializing as array

Java中的MessagePack官方實現將公共字段序列化為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也不能由Node解包,這意味着messagePack不是跨平台的,因此,重復進行,就像JSON一樣)

從我對MessagePack的經驗來看,它通常將對象視為MessagePack映射。

它不使用任何語言特定的構造,因此它是跨平台的。

我認為您可能由於使用的庫而遇到問題。 您應該考慮正式的。 您可以在此處了解更多信息。 基本上,這是Jackson的擴展,讓我們直接將Java對象序列化和反序列化到MessagePack或從MessagePack反序列化,並且可以正常工作(至少在我必須使用它的時候)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM