我前面的一篇博客 Metro应用Json数据处理 介绍了如何使用 DataContractJsonSerializer 类将对象的实例序列化为JSON字符串以及将JSON字符串反序列化为对象的实例的处理方式。而此种处理方式的一个很大的缺点就是要求JSON字符串格式是约定好的,而在很多情况下我们无法约定固定的JSON格式,而其中较为常见的一种场景就是如何将一个键值对的JSON字符串转换为一个Dictionary<String, String>。处理此种JSON数据,我们需要使用第三方开源类库Json.NET,它支持Windows Phone 和 Windows Store 应用。
首先我们需要添加Json.NET类库的引用,下图给出在Windows 8 应用下通过PM工具安装Json.NET类库并添加引用到工程中。
如上图,首先按照红色标识打开PM(程序包管理器控制台),再按照黄色标识输入“Install-Package Newtonsoft.Json”即可安装JSON.NET类库,安装成功后,在引用下可以看到上图的紫色标识信息。Windows Phone工程中的安装方式也是类似的。
下图实例给出如何将一个键值对的JSON字符串转换为一个Dictionary<String, String>对象。
下图给出一个较为复杂的实例,实例中键值对的值为对象。
以上只给出一些简单的实例说明,JSON.NET类库包含比较强大的功能,可以参考JSON.NET的说明文档http://james.newtonking.com/json/help/index.html。