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. ubuntu13.04装配oracle11gR2

    http://jingyan.baidu.com/album/bea41d435bc695b4c41be648.html?picindex=2 http://www.360doc.com/conten ...

  2. SIFT算法的应用--目标识别之Bag-of-words模型

    原文:http://blog.csdn.net/v_JULY_v/article/details/6555899 SIFT算法的应用 -目标识别之用Bag-of-words模型表示一幅图像 作者:wa ...

  3. 基于EasyUI实现windows桌面

    之前为大家介绍了 基于jquery tool实现的windows桌面效果,今天给大家带来一款基于EasyUI实现windows桌面.这款桌面适用浏览器:360.FireFox.Chrome.Safar ...

  4. 汇编中 .fill 的作用

    .fill     语法:.fill repeat, size, value    含义是反复拷贝 size个字节,重复 repeat 次,        其中 size 和 value 是可选的,默 ...

  5. linux_过程问题记录

    常见问题1:-bash: rz: command not found 解决: 安装lrzsz: 解决命令:yum -y install lrzsz 常见问题2:linux 解压乱码 解决11.到htt ...

  6. Windows防火墙出站、入站相关知识总结

    出站默认是全部允许,只禁止相关出站规则指定的条目:入站默认是全部禁止,只允许相关入站规则指定的条目. 入站规则其实没什么好说的,直接添加规则允许某IP或端口访问,或允许某程序全部访问,就行了. 要控制 ...

  7. hdu 2295 DLX

    思路:裸的DLX重复覆盖 #include<set> #include<cmath> #include<queue> #include<cstdio> ...

  8. hdu 4081 最小生成树+树形dp

    思路:直接先求一下最小生成树,然后用树形dp来求最优值.也就是两遍dfs. #include<iostream> #include<algorithm> #include< ...

  9. angular-ui-router state.go not passing data to $stateParams

    app.js中定义了一个state如下,url接收一个id参数 $stateProvider.state("page.details", { url: "/details ...

  10. hdu1251

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...