利用愛奇藝開放平臺實現視頻託管回調播放(二)——解析獲取受權返回的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

相關文章
相關標籤/搜索