微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 JsonConvert.SerializeObject 将 /u000 和其他随机转义字符放入我的序列化中

如何解决为什么 JsonConvert.SerializeObject 将 /u000 和其他随机转义字符放入我的序列化中

我正在从注册表读取所有已安装的软件。它在所有经过测试的计算机上都运行良好,但出现以下问题的计算机除外。

它正确地从注册表中读取数据并将正确的数据放入类的正确字段中。 我输入了很多 MessageBox.Show() 命令来查看返回的内容,而且看起来都是正确的。

regKey 的显示名称 = Foxit Reader

卸载字符串 = C:\Program Files (x86)\Foxit Software\Foxit Reader\Uninstall.exe

当我将值(在 C# 中)发送消息框时,我得到了这个,但是当我将 JsonConvert.SerializeObject 转换为对象时

    public int ID { get; set; }

    public int AssetID { get; set; }

    public string displayName { get; set; }

    public string displayVersion { get; set; }

    public string Publisher { get; set; }

    public string RegKey { get; set; }

    public string UninstallString { get; set; }

    public string InstallDate { get; set; }

    public bool IsActive { get; set; }

它最终看起来像这样:

{"ID":0,"AssetID":7,"displayName":"Foxit Reader\u0000\u0000\u0000\u0000\\Microso","displayVersion":"0.0.0.0","Publisher":null,"RegKey":"Foxit Reader","UninstallString":"C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\Uninstall.exe\u0000Fox-Ä~vÊ\u0000\u000f¦\u0000\u0000\u0010\u0000üú\u0018\u0000¼þ\u0018\u0000\u0010«¯v\u0001\u0000\u0000\u0000¬ž|vÎ|vÄû\u0018\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000€\u001a\u0000\u0000","InstallDate":"Jan 1 1980","IsActive":true} 

我已经把以下内容

        // Encrypt the class
        var serializerSettings = new JsonSerializerSettings();
        serializerSettings.StringEscapeHandling = StringEscapeHandling.EscapeNonAscii;


        string serializedClass = JsonConvert.SerializeObject(this,serializerSettings);

代码就位(之前它只是:

string serializedClass = JsonConvert.SerializeObject(this);

我能做些什么来摆脱所有的垃圾?当我将此传递给我的 API 以插入数据库时​​,我收到无效格式错误

任何帮助将不胜感激。 提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。