Newtonsoft.net转换日期、时间数据时出现(/Date()/)的问题

本文介绍了在使用Newtonsoft.Json进行.NET对象到Json转换时遇到的日期时间处理问题,特别是关于('/Date()/'格式)的处理。通过代码示例展示了如何在转换时自定义日期格式,避免这种特殊格式的出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用.Net控件Newtonsoft做对象或对象集合转Json时,默认Newtonsoft对时间做了一些处理,是使用 /Date(1237588418563+0000)/ 的格式输出,而且还带有时区的问题。

其实Newtonsoft是给了我们选择的,在做Json转换时需要加一些参数,以下是代码


    public class LogEntry
    {
        public string Details { get; set; }
        public DateTime LogDate { get; set; }
    }
    public void WriteJsonDates()
    {
        LogEntry entry = new LogEntry
        {
            LogDate = new DateTime(2009, 2, 15, 0, 0, 0, DateTimeKind.Utc),
            Details = "Application started."
        };
        string defaultJson = JsonConvert.SerializeObject(entry);//这是默认输出格式    
        // {"Details":"Application started.","LogDate":"\/Date(1234656000000)\/"}     
        string javascriptJson = JsonConvert.SerializeObject(entry, new JavaScriptDateTimeConverter());//JavaScript输出    
        // {"Details":"Application started.","LogDate":new Date(1234656000000)}
        string isoJson = JsonConvert.SerializeObject(entry, new IsoDateTimeConverter());
        // {"Details":"Application started.","LogDate":"2009-02-15T00:00:00Z"}    
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值