根据自己的需要,修改了CodeBetter.json类,修正了适应自己的显示。版本为2.0环境下用,所以对于简写的属性,是不能得到的。
public int Id
{
set;
get;
}
这样是得不到值的,写成
private int _AreaId; //这里的红色标注很重要,在转换时需要用到
public int AreaId
{
get { return _AreaId; }
set { _AreaId = value; }
}
在转换时需要注意:前缀加上(“_"),如果你的JSON类,没有加属性前缀的话。如:
//string s = @"{""AreaId"":3,""AreaName"":""sss"",""AreaType"":0,""CreateDate"":""2013-10-16 11:56:09.307"",""IsSaveData"":""false"",""ParentId"":0}";
这种的JSON,在转换时就得加前缀了,
CodeBetter.Json.Converter.Deserialize<T>(s,"_");
这样就可以转换出来,测试了list<>这样的集合,互转没有问题。
解决的小问题是:上一个文章里提到的,如果JSON字符串里,有多实体里没用上的属性,就会报错,同之,实体有属性这个名称,但JSON字符串里没有,也会报错。
修改后:
http://download.csdn.net/detail/nihongyuan/6441857