Winform中来自web接口的Json解析——反序列化

在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章