zoukankan      html  css  js  c++  java
  • 利用爱奇艺开放平台实现视频托管回调播放(二)——解析获取授权返回的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>()泛型方法来反序列化该对象。

  • 相关阅读:
    jQuery 小特效【文本框折叠隐藏,展开显示】【下拉菜单】【颜色渐变】【弹窗+遮罩】
    jQuery 【事件】【dom 操作】
    jQuery 【选择器】【动画】
    LINQ 小项目【组合查询、分页】
    LINQ 【高级查询】
    LINQ 【增、删、改、查】数据绑定
    WebFrom 【文件上传】
    【转】c# 字符串大小写混合转换
    【转】C#之继承
    类库,通用变量,is/as运算符,委托。
  • 原文地址:https://www.cnblogs.com/zhang-15-506/p/7662229.html
Copyright © 2011-2022 走看看