利用爱奇艺开放平台实现视频托管回调播放(二)——解析获取受权返回的JSON字符串

因为获取受权返回的是以下格式的JSON字符串:学习

1 {
2     ‘code’: A0000,
3     ‘data’: 
4     {
5         ‘access_token’: ACCESS_TOKEN, // 访问令牌
6          ‘expires_in’ : 60, // 过时时间
7          ‘refresh_token’: REFRESH_TOKEN, // 刷新令牌
8     }
9 }

那么接下来就要解析这个字符串来获取相应的信息,好比状态码和访问令牌。ui

在.NET 环境下 解析JSON有多种方式。能够本身手写一个简单的解析程序,固然最方便的仍是利用现成的库。我采用的是System.Web.Extensions程序集中的JavaScriptSerializer类。spa

以前没接触过JSON,只知道跟XML相似。知乎上叶大有个利用C语言实现一个简单的JSON解析器的系列文章,以前一直说得好好学习一下,然而一直停留在第一篇。果真,对于我来讲学习最好的动力是必需要用了,才会主动去学。找了几个示例代码浏览了一下,而后本身动手也算有模有样的把目的实现了,也不知道这个套路对不对。code

首先,根据这个JSON字符串构建了一个对应的类:对象

 1     /// <summary>
 2     /// 受权返回结果类
 3     /// </summary>
 4     [Serializable]
 5     [DataContract]
 6     public class AuthorResult
 7     {
 8 
 9         [DataMember(IsRequired = false)]
10         public Token data { get; set; }
11 
12         [DataMember(IsRequired = false)]
13         public string code { get; set; }
14 
15         [DataMember(IsRequired = false)]
16         public string msg { get; set; }
17 
18 
19     }

AuthorResult类包含3个属性:data、code、msg。其中code表示状态码,msg表示提示信息,data是自定义的Token类包含令牌、过时时间、刷新令牌属性,定义以下:blog

[Serializable]和[DataContract]是我参考别人代码写上的,貌似不写也能够
 1     /// <summary>
 2     /// 令牌类
 3     /// </summary>
 4     public class Token
 5     {
 6         public string access_token { set; get; }
 7 
 8 
 9         public int expires_in { set; get; }
10 
11 
12         public string refresh_token { set; get; }
13 
14     }

access_token、expires_in、refresh_token分别表示令牌、过时时间、刷新令牌。token

对应的类构建完毕后,就能够使用JavaScriptSerializer类的Deserialize<T>()泛型方法来反序列化该对象。ip

相关文章
相关标签/搜索