如何在.net Web API中将DateTime对象作为json传递

时间:2018-08-08 05:41:02

标签: asp.net-web-api asp.net-core

我有一个其中具有DateTime类型的模型:

    public class ToDo
    {
        public int id { get; set; }
        public int parentId { get; set; }
        public string note { get; set; }
        public DateTime due { get; set; }
        public ToDo(int id, int parentId, string note, DateTime due)
        {
            this.id = id;
            this.parentId = parentId;
            this.note = note;
            this.due = due;
        }
    }

我为此类创建了一个控制器,以通过api发送发帖请求。但是我不知道如何将DateTime类型绑定到json,但我尝试了以下正文的请求,但没有成功:

    {"parentId":1,"note":"hello world","due":{"year":2017,"month": 11,"day":25}}

我应该如何发布DateTime类型?

2 个答案:

答案 0 :(得分:1)

显然,您可以采用的方法之一是:

{"due": "2017-11-01T00:00:00"}

这实际上是一个简单的问题,但是如果您要确保如何对未知对象类型格式进行适当的后期处理,则最好发送一个空主体的对象以查看默认值。

答案 1 :(得分:1)

对于DateTime类型属性,您需要传递可以转换为DateTime类型的字符串。

对于{"year":2017,"month": 11,"day":25},它是对象而不是字符串,它将无法转换为DateTime。

适用于DateTimeConvert.ToDateTime可以转换为DateTime.Parse的任何内容。

因此,{"parentId":1,"note":"hello world","due":"05/05/2005"}{"parentId":1,"note":"hello world","due":"2018-05-10"}都可以使用,您可以使用所需的DateTime字符串进行测试。