您的位置:首页 > Web前端 > JavaScript

C#对 Json的序列化和反序列化会出现“k_BackingField”

2012-09-12 09:45 555 查看

事情从Json的序列化和反序列化说起。

在C#2.0的项目中,以前经常使用Json.Net实现序列化和反序列化。后来从c#3.0中开始使用新增的DataContractJsonSerializer进行json相关的操作。微软提供的原生类库使用上并不复杂,参考一下msdn你很容易就会写出序列化和反序列化的方法,比如经常被人使用的泛型方法如下:

DataContract实体

[DataContract]
public class Person
{
[DataMember]
public int Id { get; set; }

[DataMember]
public string FirstName { get; set; }

[DataMember]
public string LastName { get; set; }

[DataMember]
public DateTime Birthday { get; set; }
}


json输出带有k_BackingField前缀的问题可能非常简单,这里只是善意地提醒,我个人曾经有过“惨痛”的教训,而且感觉还相当隐蔽,大家也要小心啊。

最后,在使用.net framework自带的json有关类库的时候还碰到过特殊符号和时间格式转换的问题,网上有不少文章都讲到,相信不少人也有类似经历,这里就不说了。

参考:

http://geekswithblogs.net/sdorman/archive/2007/08/08/C-3.0-Automatic-Properties.aspx

http://stackoverflow.com/questions/945585/c-sharp-automatic-property-deserialization-of-json

http://stackoverflow.com/questions/340528/c-sharp-automatic-properties-why-do-i-have-to-write-get-set

/article/5876805.html

http://computeroverlord.tumblr.com/post/34781472/deserialization-problems-k-backingfield

============================================================================

转自:/article/4796248.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: