利用爱奇艺开放平台实现视频托管回调播放——解析获取授权返回的JSON字符串
Posted 咏叹调
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用爱奇艺开放平台实现视频托管回调播放——解析获取授权返回的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 }
那么接下来就要解析这个字符串来获取相应的信息,比如状态码和访问令牌。
在.NET 环境下 解析JSON有多种方式。可以自己手写一个简单的解析程序,当然最方便的还是利用现成的库。我采用的是System.Web.Extensions程序集中的javascriptSerializer类。
之前没接触过JSON,只知道跟XML类似。知乎上叶大有个利用C语言实现一个简单的JSON解析器的系列文章,之前一直说得好好学习一下,然而一直停留在第一篇。果然,对于我来说学习最好的动力是必须要用了,才会主动去学。找了几个示例代码浏览了一下,然后自己动手也算有模有样的把目的实现了,也不知道这个套路对不对。
首先,根据这个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类包含令牌、过期时间、刷新令牌属性,定义如下:
[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分别表示令牌、过期时间、刷新令牌。
对应的类构建完毕后,就可以使用JavaScriptSerializer类的Deserialize<T>()泛型方法来反序列化该对象。
以上是关于利用爱奇艺开放平台实现视频托管回调播放——解析获取授权返回的JSON字符串的主要内容,如果未能解决你的问题,请参考以下文章