【发布时间】:2012-12-18 22:45:40
【问题描述】:
总体描述
我有一个网络服务:
- 从我们的 数据库
- 使用
JsonConvert.SerializeObject()序列化 对象并将该数据作为字符串返回给用户的本地应用程序
然后是我客户的本地应用程序:
- 使用
JsonConvert.DeserializeObject<DataSet>()将对象转换回 System.Data.DataSet
我的问题
我有一个保存 Varbinary 数据 (Byte[]) 的数据列。这个序列化/反序列化过程最终导致该列数据类型为字符串(我猜是 base64)。
有没有办法在我反序列化 JSON 对象时将此列视为 varbinary?
编辑:响应 cmets
我的问题是我根据数据集的列生成了 CREATE TABLE 脚本。当我遍历列时,我需要指定每列在我用 SQL 生成的这个新表中的数据类型。对于应该是 varbinary 的列,我的 DataColumn 数据类型是字符串,并且与“用户名”等实际字符串列无法区分
【问题讨论】:
-
JSON 表示 byte[] 的唯一方式是 base64 编码字符串。它仍应反序列化为 byte[]。你有什么问题?
-
@eulerfx “问题”是当 JSON 如何序列化字符串和二进制数据时,序列化数据没有区别。当 JSON 反序列化 String 或 Binary 列数据时,一个 String 结果;我尝试过这个。当我查看序列化数据时,这并不奇怪 作为一个拥有如此高的 '声誉”,您在您的专业领域之外的事情上具有如此权威的发言权。