为什么Newtonsoft.Json将byte []序列化为base64而不是sbyte []?

new*_*ost 5 c# base64 serialization json.net bytestring

base64中的byte []编码,sbyte []中没有。

byte[] bs = {100,101};
Newtonsoft.Json.JsonConvert.SerializeObject(bs);//"ZGU="

sbyte[] sbs = {100,101};
Newtonsoft.Json.JsonConvert.SerializeObject(sbs);//"[100,101]"
Run Code Online (Sandbox Code Playgroud)

Dav*_*idG 7

这只是JSON.Net的工作方式,我怀疑大多数序列化程序都会这样做。查看明确说明已序列化为base64编码字符串的文档byte[]

所有其他数组都按您期望的那样处理,作为简单的JSON数组类型,其中元素根据数组类型的规则进行序列化。表示sbyte[]将被序列化为整数数组。