如何在html中显示c#对象?

如何在html中显示c#对象?,c#,asp.net,C#,Asp.net,我正在使用youtube api v3来显示所有视频 使用新的youtube api v3,我以json格式获取数据,然后使用反序列化将其转换为c#object 现在我的下一个挑战是在html页面中显示C#对象的数据 protected void Page_Load(object sender, EventArgs e) { string url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&

我正在使用youtube api v3来显示所有视频

使用新的youtube api v3,我以json格式获取数据,然后使用反序列化将其转换为c#object

现在我的下一个挑战是在html页面中显示C#对象的数据

protected void Page_Load(object sender, EventArgs e)
{   
    string url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=3&playlistId=UUecxTX6PCkwvuP7U1a6EJJw&key=AIzaSyB8BFP0N1eRGGhSh4xYYyz43QTBSHhOdy4";

    WebRequest req1 = WebRequest.Create(url.ToString());
    WebResponse res1 = req1.GetResponse();
    StreamReader rd1 = new StreamReader(res1.GetResponseStream(), Encoding.ASCII);

    string fileContents1;

    using (StreamReader sr1 = rd1)
    {
        fileContents1 = sr1.ReadToEnd();
    }

    Console.WriteLine(fileContents1);

    VideoTitle video = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<VideoTitle>(fileContents1);

    Repeater Rpt = base.FindControl("Rpt") as Repeater;
    Rpt.DataSource = video;
    Rpt.DataBind();
}

protected void SetItem(object sender, RepeaterItemEventArgs e)
{

    Literal title = e.Item.FindControl("Title") as Literal;

    VideoTitle video1 = e.Item.DataItem as VideoTitle;

    title.Text= video1.items[0].snippet.title;

}

//json to c# object helper class
public class PageInfo
{
    public int totalResults { get; set; }
    public int resultsPerPage { get; set; }
}

public class Default
{
    public string url { get; set; }
    public int width { get; set; }
    public int height { get; set; }
}

public class Medium
{
    public string url { get; set; }
    public int width { get; set; }
    public int height { get; set; }
}

public class High
{
    public string url { get; set; }
    public int width { get; set; }
    public int height { get; set; }
}

public class Standard
{
    public string url { get; set; }
    public int width { get; set; }
    public int height { get; set; }
}

public class Maxres
{
    public string url { get; set; }
    public int width { get; set; }
    public int height { get; set; }
}

public class Thumbnails
{
    public Default @default { get; set; }
    public Medium medium { get; set; }
    public High high { get; set; }
    public Standard standard { get; set; }
    public Maxres maxres { get; set; }
}

public class ResourceId
{
    public string kind { get; set; }
    public string videoId { get; set; }
}

public class Snippet
{
    public string publishedAt { get; set; }
    public string channelId { get; set; }
    public string title { get; set; }
    public string description { get; set; }
    public Thumbnails thumbnails { get; set; }
    public string channelTitle { get; set; }
    public string playlistId { get; set; }
    public int position { get; set; }
    public ResourceId resourceId { get; set; }
}

public class Item
{
    public string kind { get; set; }
    public string etag { get; set; }
    public string id { get; set; }
    public Snippet snippet { get; set; }
}

public class VideoTitle
{
    public string kind { get; set; }
    public string etag { get; set; }
    public string nextPageToken { get; set; }
    public PageInfo pageInfo { get; set; }
    public List<Item> items { get; set; }
}
受保护的无效页面加载(对象发送方,事件参数e)
{   
字符串url=”https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=3&playlistId=UUecxTX6PCkwvuP7U1a6EJJw&key=AIzaSyB8BFP0N1eRGGhSh4xYYyz43QTBSHhOdy4";
WebRequest req1=WebRequest.Create(url.ToString());
WebResponse res1=req1.GetResponse();
StreamReader rd1=新的StreamReader(res1.GetResponseStream(),Encoding.ASCII);
字符串fileContents1;
使用(StreamReader sr1=rd1)
{
fileContents1=sr1.ReadToEnd();
}
Console.WriteLine(fileContents1);
VideoTitle video=new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(fileContents1);
中继器Rpt=base.FindControl(“Rpt”)作为中继器;
Rpt.DataSource=视频;
Rpt.DataBind();
}
受保护的void SetItem(对象发送方、RepeaterItemEventTarget)
{
文字标题=e.Item.FindControl(“标题”)作为文字;
VideoTitle video1=e.Item.DataItem作为VideoTitle;
title.Text=video1.items[0]。snippet.title;
}
//json到c#对象帮助器类
公共类页面信息
{
公共整数totalResults{get;set;}
公共int resultsPerPage{get;set;}
}
公共类默认值
{
公共字符串url{get;set;}
公共整数宽度{get;set;}
公共整数高度{get;set;}
}
公共类媒体
{
公共字符串url{get;set;}
公共整数宽度{get;set;}
公共整数高度{get;set;}
}
公务舱高级
{
公共字符串url{get;set;}
公共整数宽度{get;set;}
公共整数高度{get;set;}
}
公共类标准
{
公共字符串url{get;set;}
公共整数宽度{get;set;}
公共整数高度{get;set;}
}
公共类Maxres
{
公共字符串url{get;set;}
公共整数宽度{get;set;}
公共整数高度{get;set;}
}
公共类缩略图
{
公共默认值@Default{get;set;}
公共媒体媒体{get;set;}
公共高高{get;set;}
公共标准{get;set;}
公共Maxres Maxres{get;set;}
}
公共类资源ID
{
公共字符串种类{get;set;}
公共字符串videoId{get;set;}
}
公共类代码段
{
公共字符串publishedAt{get;set;}
公共字符串channelId{get;set;}
公共字符串标题{get;set;}
公共字符串说明{get;set;}
公共缩略图缩略图{get;set;}
公共字符串channelTitle{get;set;}
公共字符串播放ID{get;set;}
公共int位置{get;set;}
公共资源ID资源ID{get;set;}
}
公共类项目
{
公共字符串种类{get;set;}
公共字符串etag{get;set;}
公共字符串id{get;set;}
公共代码段{get;set;}
}
公开课视频标题
{
公共字符串种类{get;set;}
公共字符串etag{get;set;}
公共字符串nextpGetOken{get;set;}
公共页面信息页面信息{get;set;}
公共列表项{get;set;}
}
我得到的错误是下面一行的System.NullReferenceException。 Rpt.DataSource=视频

在调试时,如果我在视频上鼠标悬停,它会显示视频中的所有值。不知道怎么了。有人能帮我吗

html代码是

<asp:Repeater runat="server" ID="Rpt" OnItemDataBound="SetItem">
    <ItemTemplate>
        <article>

            <ul class="linkList">
                <li>

                    <asp:HyperLink runat="server" ID="Title" />
                    <br />

                </li>
            </ul>
        </article>
    </ItemTemplate>
   </asp:Repeater>


现在只想显示youtube视频标题。

如果您使用的是C#,为什么要使用基于Web的API?YouTube上有一个巨大的C#库,它比这个JSON库工作得更好,因为你已经在C#对象中获得了所有信息,你可以从对象中读取你想要的信息并打印成html。我对C#不熟悉,我不知道这一点。你能给我一个参考或示例的URL吗?试试这个:我没有确切的链接,只需搜索“YouTube API v3 for.NET”或类似的内容。好吧,如果你使用的是C#,为什么要使用基于Web的API?YouTube上有一个巨大的C#库,它比这个JSON库工作得更好,因为你已经在C#对象中获得了所有信息,你可以从对象中读取你想要的信息并打印成html。我对C#不熟悉,我不知道这一点。你能给我一个URL作为参考或示例吗?试试这个:我没有确切的链接,只需搜索“YouTube API v3 for.NET”或类似的内容。