1

我有一个小代码片段,我尝试将映射(一种 JSON 对象)序列化为 CBOR ByteArray。但我无法获得与 CBOR 游乐场 cbor.me 相同的输出

我想序列化为 CBOR 的内容是:

{
123: [22,67,2] , 
456 : [34,22,1]
}

如果我在 cbor.me 中序列化它,我会得到:

A2          # map(2)
   18 7B    # unsigned(123)
   83       # array(3)
      16    # unsigned(22)
      18 43 # unsigned(67)
      02    # unsigned(2)
   19 01C8  # unsigned(456)
   83       # array(3)
      18 22 # unsigned(34)
      16    # unsigned(22)
      01    # unsigned(1)

我的代码如下所示:

val mapper = CBORMapper()
val map = HashMap<Any,Any>()
map[123] = intArrayOf(22,67,2)
map[456] = intArrayOf(34,12,1)
val cborData = mapper.writeValueAsBytes(map)
println(cborData.toHex())
val deserialized = mapper.readValue(cborData, HashMap<Any,Any>().javaClass)

打印的输出是这样的:

bf-19-01-c8-83-18-22-0c-01-18-7b-83-16-18-43-02-ff

TLDR 如何获得与 CBOR 游乐场相同的输出?

4

0 回答 0