我正在为我的项目使用 Servicestack 和 Ormlite,并使用 postman 进行测试。 我用于时间戳的 C# 类型是 DateTime,它可以正确处理进出 MySql 数据库的信息。当我在响应中返回值时,该值看起来是正确的,但是当在 Postman 中检查响应或仅浏览到请求 url 时,我看到的值是 [ { "id": 1, "accountType": 1, "name": "Mr J Smith", "memberSince": "/Date(1539189581000-0000)/", "phone": "8138138138", "email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="244e4e4e644e4e4e0a474b49" rel="noreferrer noopener nofollow">[email protected]</a>", "emailVerified": false } ] 我发送出去的值为 MemberSince = {10/10/2018 12:39:41 PM}
为什么会出现这样的差异?是不是格式不同?如何全局转换它?
更新
我将其添加到我的初始化例程中并且它有效。这是最好的方法吗?
JsConfig<DateTime>.SerializeFn = time => new DateTime(time.Ticks, DateTimeKind.Utc).ToString("o");
JsConfig<DateTime?>.SerializeFn = time => time != null ? new DateTime(time.Value.Ticks, DateTimeKind.Utc).ToString("o") : null;
JsConfig.DateHandler = DateHandler.ISO8601;
请您参考如下方法:
我建议你检查你正在使用的序列化器,它与postman无关,是你从后端返回数据的方式。
例如:
return Json(
new DataSourceResult
{
Data = "testing"
});
当序列化器在ajax/javascript端发送此数据时,我需要将其读取为小写的data,因为序列化器设置了第一个字母为小写。 因此,首先,查看序列化器通过网络发送的内容,并尝试在后端更改日期时间的格式。正如我所看到的,序列化程序获取所有 DateTime 并将它们转换为该格式。尝试发送日期的字符串表示形式而不是 DateTime,然后查看另一端收到的内容。应该是纯字符串。 希望这有帮助

