WP从服务器、API交换数据一般都是用JSON格式字符串。

  下面介绍用Newtonsoft.Json来处理JSON。

  准备

  1.到 http://json.codeplex.com/ 下载Newtonsoft.Json类库(Json45r10.zip)。

  2.解压引用Newtonsoft.Json.dll。

  解析

  目标JSON字符串:

  {

  "Name":"I",

  "Age":25,"

  Family":

  [

  {

  "Name":"mom",

  "Age":50,

  "Family":[]

  },

  {

  "Name":"dad",

  "Age":50,

  "Family":[]

  }

  ]

  }

  先根据目标JSON写一个Person类用来存放数据:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public List<Person> Family { get; set; }
}

  开始解析:

string jsonString = "{/"Name/":/"I/",/"Age/":25,/"Family/":[{/"Name/":/"mon/",/"Age/":50,/"Family/":[]},{/"Name/":/"dad/",/"Age/":50,/"Family/":[]}]}";
//得到json对象(jsonString不是json字符串这里就会抛出异常)
JObject json = JObject.Parse(jsonString);
Person person = new Person();
//得到属性Name的值
person.Name = (string)json["Name"];
//Age的值
person.Age = (int)json["Age"];
//用下面的方法获得Family的值
person.Family = GetPersonListFromJArray(json["Family"] as JArray);
private List<Person> GetPersonListFromJArray(JArray jArray)
{
    List<Person> list = new List<Person>();
    if (jArray != null)
    {
        foreach (JObject jObject in jArray)
        {
            Person person = new Person();
            person.Name = (string)jObject["Name"];
            person.Age = (int)jObject["Age"];
            person.Family = GetPersonListFromJArray(jObject["Family"] as JArray);
            list.Add(person);
        }
    }
    return list;
}

  这样json就解析出来啦。下面我们看看一些小细节。

  1.json["属性名"].Type可以知道这个属性的类型。

  2.json["属性名"]是那个类型才能转为其对应的类型,否则为null。

  构造

  简单,就一句代码。

  //这个person就是之前jsonString解析出来那个person

  string s = JsonConvert.SerializeObject(person);

  //这个person就是之前jsonString解析出来那个person

  string s = JsonConvert.SerializeObject(person);

【Newtonsoft.Json】Window Phone Json解析开发包的更多相关文章

  1. [转] FastJson---高性能JSON开发包

    原文地址: FastJson---高性能JSON开发包 Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发.1.遵循http://json.org标准,为 ...

  2. json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例

    json-lib-2.4-jdk15.jar所需全部JAR包.rar  java jsoup解析开彩网api接口json数据实例 json-lib-2.4-jdk15.jar所需全部JAR包.rar  ...

  3. alibaba的FastJson(高性能JSON开发包),fastjson 使用demo

    这是关于FastJson的一个使用Demo,在Java环境下验证的 class User{ private int id; private String name; public int getId( ...

  4. alibaba的FastJson(高性能JSON开发包)

    这是关于FastJson的一个使用Demo,在Java环境下验证的 class User{ private int id; private String name; public int getId( ...

  5. alibaba的FastJson(高性能JSON开发包) json转换

    http://www.oschina.net/code/snippet_228315_35122 class User{ private int id; private String name; pu ...

  6. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  7. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  8. C#对XML、JSON等格式的解析

    C#对XML.JSON等格式的解析 一.C#对XML格式数据的解析 1.用XMLDocument来解析 XmlDocument xmlDocument = new XmlDocument(); xml ...

  9. Newtonsoft.Json.dll 反序列化JSON字符串

    上一篇JSON博客<JSON入门级学习小结--JSON数据结构>中已对JSON做了简单介绍,JSON字符串数组数据样式大概是这样子的: 如今因为项目需求(asp.net web网站,前台向 ...

随机推荐

  1. Linux开机执行顺序

      1. 加载 BIOS 的硬件信息,并取得第一个开机装置的代号: 2. 读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub 等等) 的开机信息: 3. 加载 K ...

  2. tomcat7.0建立新的web服务目录

    今天参照网上的配置方法配置了下tomcat的web服务目录,结果总是显示404错误,错误原因是The requested resource is not available.搜索了半天解决方法,终于发 ...

  3. 性能监视器(SSAS)

    使用性能监视器,您可以通过性能计数器监视 Microsoft SQL Server Analysis Services (SSAS) 实例的性能. 性能监视器是用于跟踪资源使用情况的 Microsof ...

  4. 10 ways to be a faster code reviewer--reference

    reference:http://blog.codacy.com/top-10-faster-code-reviews/ This is a blog post of our Code Reading ...

  5. 让Laravel5支持memcache的方法

    Laravel5框架在Cache和Session中不支持Memcache,看清了是Memcache而不是Memcached哦,MemCached是支持的但是这个扩展真的是装的蛋疼,只有修改部分源码让其 ...

  6. VSS错误:The Sourcesafe Web service cannot be accessed at the specified address

    第一次使用正常,今天再次打开vs项目的时候就突然连不上vss的服务器了.       手动修改连接的时候会让输入一个address(http的) (一般正常的连接会是浏览的方式找到服务器文件的地址的) ...

  7. Dispatcher中Invoke与BeginInvoke

    [同步]Invoke Application.Current.Dispatcher.Invoke(AutoIncreaseNumber); [异步]BeginInvoke Application.Cu ...

  8. 基于 SOA 的组件化业务基础平台

    业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台.软件基础架构平台之间的交互与管理问题”.操作系统平台解决了“应用软件系统与硬件之间的交互与管理问题” ...

  9. 强大的JQuery(一)--基础篇

    JQuery是一个优秀的Javascript框架,是轻量级的js库,使用jQuery将极大的提高编写javascript代码的效率,,让写出来的代码更加优雅,更加健壮. 学好了jquery,我们相当于 ...

  10. centos安装ruby on rails

      最近研究svn使用http协议,但网上大多都是apache整合svn,我不想使用apache+svn,google翻了很多页终于让我找到了,但要求先安装ruby on rails,所以就有了下面的 ...