zoukankan      html  css  js  c++  java
  • WP8_Json的用法

    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,

      

      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);

      

      本文来自leons77的博客,原文地址:http://blog.csdn.net/leons77/article/details/8077282

  • 相关阅读:
    C#数组添加元素
    C#数组排序方法
    C#遍历数组
    C#动态数组ArrayList
    C#传递数组参数
    基础题(四)
    基础题(三)
    CMDB概述(二)
    CMDB概述(一)
    Django(基础篇)
  • 原文地址:https://www.cnblogs.com/jx270/p/3801688.html
Copyright © 2011-2022 走看看