我有以下 JSON:
[
{
2: {
"c": true
}
},
{
3: {
"p": 10
}
}
]
我想转换为 CBOR 格式。根据 cbor.me 我有以下输出:
82A102A16163F5A103A161700A
但是,当使用 Jackson Binary CBOR Serializer 时,我有以下输出:
82BF02BF6163F5FFFFBF03BF61700AFFFF
这没有错,但没有优化......我有一个额外的 4 个不必要的字节添加到它实际上是什么。
然后我尝试手动序列化 JSON 但结果相同:
@Override
public void serialize(Request value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartArray(value.getDataList().size());
for (Data data : value.getDataList()) {
jgen.writeStartObject(new Map[1]);
jgen.writeFieldId(data.getItem());
jgen.writeStartObject();
if (data.getObject().getC() != null) {
jgen.writeBooleanField("c", data.getObject().getC());
}
if (data.getObject().getP() != null) {
jgen.writeNumberField("p", data.getObject().getP());
}
jgen.writeEndObject();
jgen.writeEndObject();
}
jgen.writeEndArray();
}
这是杰克逊二进制格式库的错误还是我缺少 ObjectMapper 的一些配置属性?
编辑:这似乎是一个已知问题:https ://github.com/FasterXML/jackson-dataformats-binary/issues/3