首页 / C# / C#-反序列化ISO 8601日期
C#-反序列化ISO 8601日期
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-反序列化ISO 8601日期,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1391字,纯文字阅读大概需要2分钟。
内容图文
我有一个如下课程:
public class ViewItem
{
[DataMember(Name = "title")]
public string Title { get; set; }
[DataMember(Name = "created_at")]
public string CreatedAt { get; set; }
}
当我尝试将json字符串反序列化为对象时,我从没有获得CreatedAt字段的值.我的json字符串如下:
[ { "created_at" : "2014-03-05T10:26:12Z" ,
"title" : "task 4"
} ,
{ "created_at" : "2014-03-05T10:26:12Z" ,
"title" : "task 5"
}
]
反序列化代码如下:
JsonConvert.DeserializeObject<List<ViewItem>>(json);
我已经阅读了this article,并尝试提供不同的json转换以及日期解析处理,但是它不起作用.
更新:
我已经尝试过将CreatedAt属性设置为DateTime,DateTime吗?和DateTimeOffset以及简单的字符串.
解决方法:
尝试将[DataContract]添加到类声明中.还将CreatedAt属性的类型从字符串更改为DateTime:
[DataContract]
public class ViewItem
{
[DataMember(Name = "title")]
public string Title { get; set; }
[DataMember(Name = "created_at")]
public DateTime CreatedAt { get; set; }
}
经过这些更改(以及JSON修复),它对我有用:
string json = @"[{""created_at"":""2014-03-05T10:26:12Z"",""title"":""task 4""},{""created_at"":""2014-03-05T10:26:12Z"",""title"":""task 5""}]";
List<ViewItem> list = JsonConvert.DeserializeObject<List<ViewItem>>(json);
foreach (ViewItem item in list)
{
Console.WriteLine("Title: " + item.Title);
Console.WriteLine("CreatedAt: " + item.CreatedAt);
}
输出:
Title: task 4
CreatedAt: 3/5/2014 10:26:12 AM
Title: task 5
CreatedAt: 3/5/2014 10:26:12 AM
内容总结
以上是互联网集市为您收集整理的C#-反序列化ISO 8601日期全部内容,希望文章能够帮你解决C#-反序列化ISO 8601日期所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。