Rom*_*man 3 servicestack typescript
默认情况下,webstorm插件生成的servicestack typescript文件dtos.ts将所有日期属性设置为字符串.
// @Required()
to: string;
Run Code Online (Sandbox Code Playgroud)
在servicestack .cs文件中,此属性为DateTime.任何想法为什么它是这样,我需要做什么,它将它转换为日期作为asp.net web api例如
与其他语言不同,TypeScript中没有"反序列化步骤",即TypeScript DTO只定义了原始JSON中返回的Type,因为JSON中没有Date类型,Date值作为字符串返回,它的类型是当它使用JavaScript的内置JSON.parse()或转换为JS对象时eval().
可以使用以下命令转换ServiceStack.Text中返回的默认WCF日期:
function todate (s) {
return new Date(parseFloat(/Date\(([^)]+)\)/.exec(s)[1]));
};
Run Code Online (Sandbox Code Playgroud)
如果您正在使用servicestack-client npm包,可以使用以下方法解决:
import { todate } from "servicestack-client";
var date = todate(wcfDateString);
Run Code Online (Sandbox Code Playgroud)
或者如果使用ServiceStack中内置的ss-utils.js:
var date = $.ss.todate(wcfDateString);
Run Code Online (Sandbox Code Playgroud)
如果将ServiceStack.Text的默认序列化更改为使用ISO8601日期格式:
JsConfig.DateHandler = DateHandler.ISO8601;
Run Code Online (Sandbox Code Playgroud)
它可以通过以下方式进行本地解析:
new Date(dateString)
Run Code Online (Sandbox Code Playgroud)
同样在配置为返回时:
JsConfig.DateHandler = DateHandler.UnixTimeMs;
Run Code Online (Sandbox Code Playgroud)
它也可以原生转换为:
new Date(unixTimeMs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |