我有一个小代码片段,我尝试将映射(一种 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 游乐场相同的输出?