序列化Json-Newtonsoft.Json


C#中json數據的處理,把模型中的數據序列化為json

首先在項目中引用Newtonsoft.Json.dll

其下載地址和性能比較以及詳情請查看:http://json.codeplex.com/

示例代碼:

先建兩個模型,以用在demo中

 1         public class xModle
 2         {
 3             public int xID { get; set; }
 4             public string xName { get; set; }
 5         }
 6 
 7         public class xJsonModel {
 8             public int xCount { get; set; }
 9             public List<xModle> xmodel { get; set; }
10         }

demo1:

1         public string JsonSerialize()
2         {
3             xModle item = new xModle { xID = 100, xName = "TestName" };
4             string JsonStr = JsonConvert.SerializeObject(item);
5             return JsonStr;
6         }

結果為:

{"xID":100,"xName":"TestName"}

demo2:

 1         public string JsonSerializeList()
 2         {
 3             xModle item1 = new xModle { xID = 100, xName = "TestName1" };
 4             xModle item2 = new xModle { xID = 200, xName = "TestName2" };
 5             string JsonStr = JsonConvert.SerializeObject(new[] { item1, item2 });
 6             //也可以用下面代碼
 7             //List<xModle> list = new List<xModle>();
 8             //list.Add(item1);
 9             //list.Add(item2);
10             //string JsonStr = JsonConvert.SerializeObject(list);
11             return JsonStr;
12         }

結果為:

[{"xID":100,"xName":"TestName1"},{"xID":200,"xName":"TestName2"}]

demo3:

 1         public string JsonSerializeMore()
 2         {            
 3             xModle item1 = new xModle { xID = 100, xName = "TestName1" };
 4             xModle item2 = new xModle { xID = 200, xName = "TestName2" };
 5             List<xModle> list = new List<xModle>();
 6             list.Add(item1);
 7             list.Add(item2);
 8             xJsonModel xItem = new xJsonModel();
 9             xItem.xCount = list.Count;
10             xItem.xmodel = list;
11             string JsonStr = JsonConvert.SerializeObject(xItem);
12             return JsonStr;
13         }

結果為:

{"xCount":2,"xmodel":[{"xID":100,"xName":"TestName1"},{"xID":200,"xName":"TestName2"}]}


 反序列話就更簡單了:如把上面這個結果反序列化

1             var x = JsonConvert.DeserializeObject<xJsonModel>(JsonStr);
2             return x.xmodel.FirstOrDefault().xName;//結果為TestName1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM