在MVC中,解析Json可以直接引用System.Web.Script.Serialization;
例如:
JavaScriptSerializer js = new JavaScriptSerializer();
List<***> item = js.Deserialize<List<***>>(result);
這樣就可以把result這個json字符串轉換成已經寫好的list<*>模板中。
但是在winform中我們不能引用System.Web.Script.Serialization;
這個時候可以直接用一個神器——newtonsoft.json.dll
這個dll非常好用,可以去官網看,進去就讓我感覺這個dll做的真是爲民着想,還不要錢,開源,收到的捐贈也是很多,畢竟確實用起來方便。
首先我們去官網下載 newtonsoft.json.dll
地址:http://www.newtonsoft.com/json
然後在VS中引用這個dll文件。
點擊頂部菜單的工具-選擇工具箱項
然後會出來一個界面,頂部點.NETFrameWork,然後點瀏覽,找到你下載好的dll文件。下載的dll文件有2.0 2.5 3.0 3.5 4.0 4.5這幾個版本,對應你裝的.NetFramework的版本。
我自己在添加這個dll的時候,沒有成功,顯示文件XXX無效。
百度半天,找到一個方法,說是直接把dll文件往.NetFramework那個界面拖,我還是沒成功。然後好奇點了點別的地方,發現有個地方非常好用,以後添加dll文件都可以在這裏:
點擊 管理NuGet程序包
在輸入框內搜索你要找的dll文件,會自動搜索到匹配的,然後直接點擊安裝就行了。
試着搜了別的dll文件,MVC的一些dll文件都可以添加上去,非常方便。
正題,開始進行json的反序列化
List<Model> result = JsonConvert.DeserializeObject<List<Model>>(Json_string);
一個是把json轉換成寫好的model,可以一一對應的轉換,假如Json中有Name、Date、Age三個變量,一共有十組信息,我的People類也有這三個成員,那麼我建立一個List< Peopel >,上面這個語句就會自動把result這個list裏填充滿十個People,每個分別是json中的數據一一對應的。
給個官方的示例圖:
想看MVC解析API返回json字符串方法的,可以看我另一篇博客。
http://blog.csdn.net/hezepeng1996/article/details/51955829