ServiceStack DateTime数据类型转Json出现的困扰
Posted lonelyxmas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ServiceStack DateTime数据类型转Json出现的困扰相关的知识,希望对你有一定的参考价值。
原文:ServiceStack DateTime数据类型转Json出现的困扰执行dotnet-new selfhost sstest 创建项目,然后打开解决方案
修改ssTest.ServiceModel中的Hello.cs,在HellopResponse中添加时间属性,然后修改MyServices中的代码
运行程序,打开Postman查看返回结果
可以看到Json中date属性返回的是 "date": "/Date(1555810731732+0800)/",直接导致前段js无法识别该字段,该如何解决?
在Startup中加入以下代码,任何时间都转换为ISO8601字符串
public class Startup { // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { JsConfig<DateTime>.SerializeFn = time => new DateTime(time.Ticks, DateTimeKind.Local).ToString("o"); JsConfig<DateTime?>.SerializeFn = time => time != null ? new DateTime(time.Value.Ticks, DateTimeKind.Local).ToString("o") : null; JsConfig.DateHandler = DateHandler.ISO8601; app.UseServiceStack(new AppHost()); app.Run(context => { context.Response.Redirect("/metadata"); return Task.FromResult(0); }); } }
打开Postman再次运行,查看结果
前段js再次取得该字符串时间,就可以正确的识别时间类型字段了。
以上是关于ServiceStack DateTime数据类型转Json出现的困扰的主要内容,如果未能解决你的问题,请参考以下文章
2021-07-09 .NET高级班 101-Redis分布式缓存 ServiceStack中List类型
2021-07-09 .NET高级班 100-Redis分布式缓存 ServiceStack中ZSet类型
2021-07-08 .NET高级班 99-Redis分布式缓存 ServiceStack中Set类型
2021-07-07 .NET高级班 97-Redis分布式缓存 ServiceStack中String类型