1

最近我正在使用dailymotion 视频API。但是我不确定如何将返回的数据转换为我的 ASP.NET C# 应用程序。

得到

https://api.dailymotion.com/videos?search=fun&page=3

结果

{ "page": 1,
  "limit": 2,
  "total": 218248,
  "has_more": true,
  "list": [
      { "id": "xrk9mi",
        "title": "Priyanka & Shahid Kapoor get MOBBED in local train",
        "channel": "fun",
        "owner": "xlw7uu"
      },
     { "id": "xrk8fy",
        "title": "What's Up With Gaga?: Hit On Head, Perfume Bottle Leaked, Thai Fans Angry",
        "channel": "music",
        "owner": "xofeoz" }
     ]
}
4

1 回答 1

3

您将声明一个与您返回的内容匹配的类,让我们将其分解为多个部分,从外部类声明开始:

public class DailyMotionVideo {
  public int page {get;set;}
  public int limit {get;set;}
  public int total {get;set;}
  public bool has_more {get;set;}
  public XXX[] list {get;set;}
}

所以我会对 XXX 做同样的事情,它需要是一个单独的类型,这样我们就可以将它们组成一个数组:

public class DailyMotionVideoInternalList {
  public string id {get;set;}
  public string title {get;set;}
  public string channel {get;set;}
  public string owner {get;set;}
}

这需要我们返回并将该名称放入我们的第一个声明中:

public class DailyMotionVideo {
  public int page {get;set;}
  public int limit {get;set;}
  public int total {get;set;}
  public bool has_more {get;set;}
  public DailyMotionVideoInternalList[] list {get;set;}
}

public class DailyMotionVideoInternalList {
  public string id {get;set;}
  public string title {get;set;}
  public string channel {get;set;}
  public string owner {get;set;}
}

然后您可以通过多种方法将接收到的对象转换为该对象,具体取决于您使用的 .NET 版本。

由于您已经将其作为字符串获取,因此我将假设该字符串称为“result”:

DailyMotionVideo videoList = 
           new JavaScriptSerializer().Deserialize<DailyMotionVideo>(result);
于 2012-06-16T06:25:51.610 回答