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

柳州网站建设工作室基金会网站开发方案

柳州网站建设工作室,基金会网站开发方案,wordpress auto draft,公司网站制作第三方文章目录 写在前面问题描述解决办法扩展 Datetime类型转换源码完整的配置 写在前面 以下方法中的所有转换器都属于刚刚能解决我的问题状态#xff0c;实际使用过程中应该编写更加严谨的逻辑。 问题描述 webapi 当使用System.Text.Json类库进行json转化时#xff0c;如果没… 文章目录 写在前面问题描述解决办法扩展 Datetime类型转换源码完整的配置 写在前面 以下方法中的所有转换器都属于刚刚能解决我的问题状态实际使用过程中应该编写更加严谨的逻辑。 问题描述 webapi 当使用System.Text.Json类库进行json转化时如果没有明确类型的基础类型则会出现转换值为ValueKind:Object {xxxxx}等问题。 解决办法 通过自定义转换器实现 代码如下 public class ObjectJsonConverter : JsonConverterObject {public override object? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options){if (reader.TokenType JsonTokenType.String){if (DateTime.TryParse(reader.GetString(), out DateTime dateTime))return dateTime;return reader.GetString();}else if (reader.TokenType JsonTokenType.Number){if (reader.TryGetInt32(out int intNum))return intNum;else if (reader.TryGetDouble(out double doubleNum))return doubleNum;elsereturn reader.GetDecimal();}return reader.GetDecimal();}public override void Write(Utf8JsonWriter writer, object value, JsonSerializerOptions options){ Type objType value.GetType();if (value null)writer.WriteNullValue();if (objType typeof(string) || objType typeof(DateTime) || objType typeof(Guid))writer.WriteStringValue(value.ToString());else if (objType typeof(int))writer.WriteNumberValue((int)value);else if (objType typeof(double))writer.WriteNumberValue((double)value);else if (objType typeof(decimal))writer.WriteNumberValue((decimal)value);else if (objType typeof(char))writer.WriteNumberValue((char)value);else if (objType typeof(bool))writer.WriteBooleanValue((bool)value);elsewriter.WriteStringValue(value.ToString()); } }在入口程序配置 // 添加Object格式化转换器 options.JsonSerializerOptions.Converters.Add(new ObjectJsonConverter());扩展 Datetime类型转换源码 public class DateTimeJsonConverter : JsonConverterDateTime {public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options){if (reader.TokenType JsonTokenType.String){if (DateTime.TryParse(reader.GetString(), out DateTime dateTime)){return dateTime;}}return reader.GetDateTime();}public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options){writer.WriteStringValue(value.ToString(yyyy年MM月dd日 HH时mm分ss秒));} }完整的配置 // Add services to the container. builder.Services.AddControllers().AddJsonOptions(options {// 设置编码格式options.JsonSerializerOptions.Encoder JavaScriptEncoder.UnsafeRelaxedJsonEscaping;// 是否格式化文本options.JsonSerializerOptions.WriteIndented true; // 字段采用驼峰式命名options.JsonSerializerOptions.PropertyNamingPolicy JsonNamingPolicy.CamelCase;// 忽略null值options.JsonSerializerOptions.DefaultIgnoreCondition JsonIgnoreCondition.WhenWritingNull;// 忽略只读字段options.JsonSerializerOptions.IgnoreReadOnlyProperties true;// 允许属性值末尾存在逗号options.JsonSerializerOptions.AllowTrailingCommas true;// 处理循环引用类型options.JsonSerializerOptions.ReferenceHandler ReferenceHandler.IgnoreCycles; //枚举类型转string配置避免转intoptions.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());// 添加时间格式化转换器options.JsonSerializerOptions.Converters.Add(new DateTimeJsonConverter());// 添加Object格式化转换器options.JsonSerializerOptions.Converters.Add(new ObjectJsonConverter());});
http://www.zqtcl.cn/news/982806/

相关文章:

  • 调用别人网站的数据库如何开网店卖自己的东西
  • 个人网站做影视网站开发学什么专业
  • 企业名称注册查询官网入口免费seo网站推广
  • 浙江门户网站建设公司个体工商户查询
  • 做网站的注意点赛事竞猜网站开发
  • 现在流行用什么语言做网站ppt设计教程网
  • 高端网站哪种好培训机构不退钱最怕什么举报
  • 青岛个人建站模板wordpress没有链接
  • 网上学习网站有哪些厦门城乡建设局网站
  • 怎样创建网站快捷方式个人制作一个网站的费用
  • 恒信在线做彩票的是什么样的网站软件开发流程管理
  • 网站服务器地址在哪里看艺术学校网站模板
  • 郑州中心站网站建设价格标准新闻
  • 电子商务网站管理互联网营销师主要做什么
  • 门户网站指的是什么凯里网络公司建设网站
  • 网站接入服务商查询0建设营销型网站步骤
  • 长沙如何做百度的网站小型网站建设实训教程
  • 昆明网络公司网站网站建设经费请示
  • 手机端网站欣赏wordpress 文章rss
  • 做网站一定要实名认证吗国外免费空间网站申请
  • 阿里云网站空间主机长春网站建设设计
  • 龙华网站建设yihekj长沙招聘网站制作
  • 网站怎么做文本跳出来网络规划设计师有用吗
  • 室内设计网站官网大全中国那些企业做网站做得好
  • 状态管理名词解释网站开发网络营销推广方案案例
  • 做网站需要几大模板河南中国建设信息网
  • 成都温江网站建设空间网页版
  • 做美股的数据网站邢台网站建设公司哪家好一点
  • 青岛即墨网站开发查询建设用地规划许可证在哪个网站
  • 成都APP,微网站开发芜湖企业100强