我得到了一个Vec<u8>
in的代码,我想用reqwest
发送给json.这行代码给我的输出大约是400,其中content
是Vec<u8>
:content.len()
.我怀疑使用serde_json
时使用的字节数是相同的,但是当我使用下面的代码时,使用的字节数是原来的三倍:
serde_json::to_value(content).to_string().to_bytes().len()
个
这给出了大约1200.我也试着切换到serde_bytes
,但结果是一样的.当我将它编码为Base64时,输出是500,所以开销很小,但还可以.将Value
解码回Vec<u8>
是一件很痛苦的事情,看起来开销来自serde_json
将所有内容都编码为u64
的事实.
上下文:我调用的端点对我可以发送的字节有严格的限制,这就是为什么我要事先进行计算,通过计算端点将收到的字节数来省略调用该端点的错误.如果计算字节的方法不正确,我也想知道.