当前位置: 首页 > news >正文

鹰潭房产网站建设做网站商城的小图标软件

鹰潭房产网站建设,做网站商城的小图标软件,手机应用市场下载,买源码做网站简单嘛行为不一致.NET Core 3.0 新出了个内置的 JSON 库, 全名叫做尼古拉斯 System.Text.Json - 性能更高占用内存更少这都不是事...对我来说, 很多或大或小的项目能少个第三方依赖项, 还能规避多个依赖项的依赖 Newtonsoft.Json 版本不一致的问题, 是件极美的事情.但是, 结果总不是不… 行为不一致.NET Core 3.0 新出了个内置的 JSON 库, 全名叫做尼古拉斯 System.Text.Json - 性能更高占用内存更少这都不是事...对我来说, 很多或大或小的项目能少个第三方依赖项, 还能规避多个依赖项的依赖 Newtonsoft.Json 版本不一致的问题, 是件极美的事情.但是, 结果总不是不如预期那么简单和美好, 简单测试了下, 有一些跟 Newtonsoft.Json 行为不一致的地方, 代码如下:using Microsoft.VisualStudio.TestTools.UnitTesting;namespace UnitTestProject3 {[TestClass]public class TestJsonDiff{[TestMethod][Description(description: 测试数字序列化)]public void TestNumber(){object jsonObject new { number 123.456 };string aJsonString Newtonsoft.Json.JsonConvert.SerializeObject(value: jsonObject);string bJsonString System.Text.Json.JsonSerializer.Serialize(value: jsonObject);Assert.AreEqual(expected: aJsonString, actual: bJsonString, message: 测试数字序列化失败);}[TestMethod][Description(description: 测试英文序列化)]public void TestEnglish(){object jsonObject new { english bla bla };string aJsonString Newtonsoft.Json.JsonConvert.SerializeObject(value: jsonObject);string bJsonString System.Text.Json.JsonSerializer.Serialize(value: jsonObject);Assert.AreEqual(expected: aJsonString, actual: bJsonString, message: 测试英文序列化失败);}[TestMethod][Description(description: 测试中文序列化)]public void TestChinese(){object jsonObject new { chinese 灰长标准的布咚发 };string aJsonString Newtonsoft.Json.JsonConvert.SerializeObject(value: jsonObject);string bJsonString System.Text.Json.JsonSerializer.Serialize(value: jsonObject);Assert.AreEqual(expected: aJsonString, actual: bJsonString, message: 测试中文序列化失败);}[TestMethod][Description(description: 测试英文符号)]public void TestEnglishSymbol(){object jsonObject new { symbol ~!#$%^*()_-{}[]:;,.?/ };string aJsonString Newtonsoft.Json.JsonConvert.SerializeObject(value: jsonObject);string bJsonString System.Text.Json.JsonSerializer.Serialize(value: jsonObject);Assert.AreEqual(expected: aJsonString, actual: bJsonString, message: 测试英文符号失败);}[TestMethod][Description(description: 测试中文符号)]public void TestChineseSymbol(){object jsonObject new { chinese_symbol ~·#%……*—-【】“”‘’《》。、 };string aJsonString Newtonsoft.Json.JsonConvert.SerializeObject(value: jsonObject);string bJsonString System.Text.Json.JsonSerializer.Serialize(value: jsonObject);Assert.AreEqual(expected: aJsonString, actual: bJsonString, message: 测试中文符号失败);}} }先来看看总体的测试结果:这是 VS 显示的结果这是执行 dotnet test 命令行显示的结果这个时候需要配个图那么问题来了, 国庆去哪玩比较好呢, 我是谁? 这是哪? 发生了什么?解决办法解决中文会被 Unicode 编码的问题这个问题是在博客园里找到的一种答案: .NET Core 3.0 中使用 System.Text.Json 序列化中文时的编码问题[TestMethod] [Description(description: 测试中文序列化)] public void TestChinese() {object jsonObject new { chinese 灰长标准的布咚发 };string aJsonString Newtonsoft.Json.JsonConvert.SerializeObject(value: jsonObject);string bJsonString System.Text.Json.JsonSerializer.Serialize(value: jsonObject,options: new System.Text.Json.JsonSerializerOptions{Encoder System.Text.Encodings.Web.JavaScriptEncoder.Create(allowedRanges: UnicodeRanges.All)});Assert.AreEqual(expected: aJsonString, actual: bJsonString, message: 测试中文序列化失败); } 关键在于序列化配置加了一句new System.Text.Json.JsonSerializerOptions {Encoder System.Text.Encodings.Web.JavaScriptEncoder.Create(allowedRanges: UnicodeRanges.All) } 但是一些符号被转义的问题还是不管用, 寻思了一上午暂时没找到答案...至于什么时候修复此类问题,我去源码 corefx 溜个一圈, 暂时的发现是归到了 .NET Core 3.1 和 5.0 的开发时间线里...后面回来发现这不应该啊但是...难道就这样了?怀着受伤的核桃心, 中午又吃了3只大闸蟹...诡异的是新建 ASP.NET Core API (.NET Core 3.0) 输出的 JSON 中文和转义字符都是正常, 如图:说明一定是我们打开的方式不对...回娘家找源码, 寻寻匿匿最后发现这么一句// If the user hasnt explicitly configured the encoder, use the less strict encoder that does not encode all non-ASCII characters. jsonSerializerOptions jsonSerializerOptions.Copy(JavaScriptEncoder.UnsafeRelaxedJsonEscaping); less strict ? 那对照的意思是 Newtonsoft.Json 一直使用的就是非严格模式咯, 而我们习惯使用的也是这种模式.那么改下, 还报错的单元测试都加上配置 JavaScriptEncoder.UnsafeRelaxedJsonEscaping, 果然测试结果顺眼多了. 连上面的 UnicodeRanges.All 都不需要配置了.string bJsonString System.Text.Json.JsonSerializer.Serialize(value: jsonObject,options: new System.Text.Json.JsonSerializerOptions{Encoder System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping}); 又整明白一个问题, 开森...
http://wiki.neutronadmin.com/news/362835/

相关文章:

  • 网站开发要什么流程宿迁环保局网站建设局
  • 兴化网站网站建设青岛网站建设订做
  • 网站收录变少邵东网页定制
  • 外链网站大全乐山建设局网站
  • 有没有专业做淘宝网站吗html 医药网站模板
  • 合肥建站网站windows优化大师使用方法
  • 做今网站网站类网站怎么做
  • 如何建立免费的网站网络维护怎么做
  • 网站设计与开发的基本步骤包括哪些?网络会议系统设备
  • 网站制作工作室制作平台主要干啥
  • 学习网站建设与管理专业做数据的网站
  • 宁远网站建设网站做百度权重排名论坛
  • wordpress 导航网站主题网站如何去分析
  • 台州cms建站系统免费永久空间
  • 自己做的网站360显示过期最近消息报道
  • 做网站公司项目的流程网站怎么做备份
  • html5手机网站制作软件长春网站建设论坛
  • 网站vps十大引擎网址
  • asp做的静态网站卡不卡北京市建设资格执业中心网站
  • 笑话网站html模板wordpress建的网站吗
  • 正能量网站入口免费安全电子商务网站费用预算
  • 专业网页制作与网站设计宁波seo快速优化教程
  • 免费网站软件哪个好东莞公司建网站模板
  • 网站建设与推广的实训报告学做美食网站
  • 摄影网站的市场可行性seo优化服务是什么
  • 研究生网站建设本地wordpress如何迁移
  • 写一个网站需要什么技术网站开发的好处
  • 手表网站制作模板桂林医院网站建设
  • 安徽科技网站建设html网站开发项目
  • 工作正能量励志句子优化大师软件大全