根據自己的需要,修改了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