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

外贸建站的公司wordpress如何汉化主题

外贸建站的公司,wordpress如何汉化主题,网站如何诊断,司法厅网站建设方案net9.0 中System.Text.Json 测试惊喜的发现当前版本循环引用序列化未报错,并且能正常序列化成功,故做此记录。测试结果仅做参考!!! 配置选项 # 配置说明JsonSerializerOptions jsonSerializerOptions new JsonSerial…
net9.0 中System.Text.Json 测试惊喜的发现当前版本循环引用序列化未报错,并且能正常序列化成功,故做此记录。测试结果仅做参考!!!
配置选项
     # 配置说明JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions{PropertyNameCaseInsensitive = true, // 属性名称大小写不敏感PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // 属性名称使用驼峰命名规则WriteIndented = true, // 设置格式化输出Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, // 允许特殊字符ReadCommentHandling = JsonCommentHandling.Skip, // 忽略注释AllowTrailingCommas = true, // 忽略尾随逗号NumberHandling = JsonNumberHandling.AllowReadingFromString, // 允许数字字符串Converters = { new DatetimeJsonConverter() } // 注册你的自定义转换器, };
DatetimeJsonConverter 自定义解析
/// <summary>
/// 时间字符串格式化
/// </summary>
public class DatetimeJsonConverter : JsonConverter<DateTime>
{public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options){if (reader.TokenType == JsonTokenType.String){if (DateTime.TryParse(reader.GetString(), out DateTime date))return date;}return reader.GetDateTime();}public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options){writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));}
}/// <summary>
/// Unix格式时间格式化
/// </summary>
public class UnixTimeConverter : JsonConverter<DateTime>
{public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options){if (reader.TokenType == JsonTokenType.String){if (long.TryParse(reader.GetString(), out long timestamp))return DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;}if (reader.TokenType == JsonTokenType.Number){long timestamp = reader.GetInt64();return DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;}return reader.GetDateTime();}public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options){long timestamp = new DateTimeOffset(value).ToUnixTimeSeconds();writer.WriteStringValue(timestamp.ToString());}
}
测试
 public class TestJson{/// <summary>/// 名称/// </summary>public string? Name { get; set; }public TestBaseJson TestBaseJson { get; set;}}//[JsonPolymorphic(TypeDiscriminatorPropertyName = "TestBaseJson")]//[JsonDerivedType(typeof(TestBaseJson))]public class TestBaseJson{public string? Name { get; set; }public int Id { get; set; }public TestBaseJson TestBase { get; set; }}TestJson testJson =new() {Name = "ces",Date=DateTime.Now,TestBaseJson = new TestBaseJson() { Id = 123, Name = "测试",TestBase = new TestBaseJson() {Id = 123, Name = "2222"} }};JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions{PropertyNameCaseInsensitive = true, // 属性名称大小写不敏感PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // 属性名称使用驼峰命名规则WriteIndented = true, // 设置格式化输出Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, // 允许特殊字符ReadCommentHandling = JsonCommentHandling.Skip, // 忽略注释AllowTrailingCommas = true, // 忽略尾随逗号NumberHandling = JsonNumberHandling.AllowReadingFromString, // 允许数字字符串Converters = { new DatetimeJsonConverter() } // 注册你的自定义转换器, };// 序列化Console.WriteLine(JsonSerializer.Serialize(testJson, jsonSerializerOptions));// 反序列化//string jsonStr = "{\r\n  \"name\": \"ces\",\r\n  \"testBaseJson\": {\r\n    \"name\": \"测试\",\r\n    \"id\": 123,\r\n    \"testBase\": {\r\n      \"name\": \"2222\",\r\n      \"id\": 123,\r\n      \"testBase\": null\r\n    }\r\n  },\r\n  \"date\": \"2025-04-08 10:19:43\"\r\n}";// 或者string jsonStr = "{\"name\":\"ces\",\"testBaseJson\":{\"Name\":\"测试\",\"id\":\"123\",\"testBase\":{\"name\":\"2222\",\"id\":123,\"testBase\":null,}},\"date\":\"2025-04-08 10:19:43\"}";// 这里加了多余逗号,数字字符串,大小写等,进行反序列化TestJson testJson2 = JsonSerializer.Deserialize<TestJson>(jsonStr, jsonSerializerOptions);

序列化

反序列化

http://www.dtcms.com/a/410065.html

相关文章:

  • phpcms网站系统 技术方案 系统框架图网站系统开发团队简介
  • vue3+ts项目实现陕西省3d地图
  • leetcode_146 LRU缓存
  • Python常用自动化测试框架—Pytest详解
  • 郑州英文网站建设软件开发平台搭建
  • 在 C# .NETCore 中使用 MongoDB(第 3 部分):跳过、排序、限制和投影
  • 建设网站入什么科目最大的商标交易平台
  • esp32墨水屏学习3
  • DOM(二):事件监听、事件类型、事件对象、环境对象、回调函数、Tab栏切换
  • net6.0 WebApi 中使用 Entity Framework Core + Sqlite
  • 前端2.0
  • PostIn入门到实战(4) - 如何使用接口Mock尽早满足前端开发需求
  • 【论文阅读 | TGRS 2025 | DHANet:用于多模态无人机目标检测的双流分层交互网络​​】
  • 零知IDE——STM32F407VET6与ADS1115模数转换器实现多通道数据采集显示系统
  • 门户网站 商城系统青岛建站开发
  • 从零学算法39
  • BIKE算法:后量子密码标准化竞赛中的编解码候选者
  • 【字节跳动】LLM大模型算法面试题:什么是 LangChain?LangChain 包含哪些 核心概念?
  • 降低fullgc停顿时间
  • BatchNorm2d详细原理介绍
  • Spring Boot WebSocket:使用 Java 构建多频道聊天系统
  • 中堂镇仿做网站软文网站有哪些
  • Android 应用配置跳转微信小程序
  • Word和WPS文字中的自动编号和文字间距过大怎么办?
  • 京东零售张泽华:从营销意图到购买转化,AI重塑广告增长
  • Casey‘s EDI 需求分析
  • 网站美工和平面设计师手机网站域名开头
  • 从垂直钻到水平钻:如何用陀螺精准掌控钻井轨迹?
  • yield在Python中的应用
  • Linux配置Java/JDK(解决Kali启动ysoserial.jar JRMPListener报错)暨 Kali安装JAVA8和切换JDK版本的详细过程