c# – DataContractJsonSerializer和JsonConvert给出不同的结果
发布时间:2020-12-15 20:55:32 所属栏目:百科 来源:网络整理
导读:我有这样的方法. using (MemoryStream memoryStream = new MemoryStream()){ DataContractJsonSerializer dataContractSerializer = new DataContractJsonSerializer(typeof(Message),this.knowTypes); dataContractSerializer.WriteObject(memoryStream,mes
我有这样的方法.
using (MemoryStream memoryStream = new MemoryStream()) { DataContractJsonSerializer dataContractSerializer = new DataContractJsonSerializer(typeof(Message),this.knowTypes); dataContractSerializer.WriteObject(memoryStream,message); byte[] byteArray = memoryStream.ToArray(); memoryStream.Close(); return byteArray; } 当我将byteArray转换为字符串时,结果如下所示: 这个结果对我的服务器有意义. 但是,由于某些字符问题,我想更改此代码. byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message)); return byteArray; 现在我将byteArray转换为字符串结果,如: 我也试过使用JsonSerializerSettings settings = new JsonSerializerSettings(); settings.TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full; settings.TypeNameHandling = TypeNameHandling.Objects; 结果是 DataContractJsonSerializer和JsonConvert之间有什么区别,使用JsonConvert可以获得相同的结果. 解决方法
将以下设置传递给DataContractJsonSerializer,您永远不应获取任何类型信息:
DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings() { EmitTypeInformation = EmitTypeInformation.Never }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |