zoukankan      html  css  js  c++  java
  • 【Newtonsoft.Json】Window Phone Json解析开发包

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

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

      准备

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

    0ad540f3b24

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

    64043be2219

      解析

      目标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可以知道这个属性的类型。

    6ddc6b1b8d4

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

    edfdd35145b

      构造

      简单,就一句代码。

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

      string s = JsonConvert.SerializeObject(person);

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

      string s = JsonConvert.SerializeObject(person);

    478fb3d5079

  • 相关阅读:
    HDU 2899 Strange fuction
    HDU 2899 Strange fuction
    HDU 2199 Can you solve this equation?
    HDU 2199 Can you solve this equation?
    Java实现 LeetCode 700 二叉搜索树中的搜索(遍历树)
    Java实现 LeetCode 700 二叉搜索树中的搜索(遍历树)
    Java实现 LeetCode 700 二叉搜索树中的搜索(遍历树)
    Java实现 LeetCode 699 掉落的方块(线段树?)
    Java实现 LeetCode 699 掉落的方块(线段树?)
    Java实现 LeetCode 699 掉落的方块(线段树?)
  • 原文地址:https://www.cnblogs.com/mcad/p/4124812.html
Copyright © 2011-2022 走看看