【问题标题】:Deserializing Json in asp.net在asp.net中反序列化Json
【发布时间】:2011-09-20 17:43:43
【问题描述】:

我有一个 Json,我想反序列化并将其保存在类的属性中。但是还没有使用该类进行序列化,是否可以将Json值存储在该类的属性中..

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://api.brightcove.com/services/library?command=find_playlist_by_id&token=myToken&playlist_id=61674080001&video_fields=id,name,thumbnailURL,playsTotal,shortDescription&page_size=1&sort_by=plays_total&sort_order=desc");
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        using (StreamReader reads = new StreamReader(response.GetResponseStream()))
        {
            value = reads.ReadToEnd();
        }
        value = value.Remove(1, value.IndexOf("]") + 1);
        hidField.Value = value;



        JavaScriptSerializer s = new JavaScriptSerializer();
        BCVideos v =  s.Deserialize<BCVideos>(value);

存储 Json 数据的类。

public class BCVideos
{
    private int _id;

    public int Id
    {
        get { return _id; }
        set { _id = value; }
    }
    private string _name, _thumbnailUrl, _shortDescription;

    public string ShortDescription
    {
        get { return _shortDescription; }
        set { _shortDescription = value; }
    }

    public string ThumbnailUrl
    {
        get { return _thumbnailUrl; }
        set { _thumbnailUrl = value; }
    }

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

}

如果有人做过这种工作,请回复。

【问题讨论】:

    标签: asp.net json deserialization


    【解决方案1】:

    很难回答您的问题,但如果我没记错 BrightCove 的 API,我认为您想在此处制作 BrightCove 视频的集合。因此,您需要的是一个 2 层对象——一个包含一系列视频的播放列表容器。你所拥有的只是覆盖容器。它应该类似于:

    public class BrightCovePlayList
    {
        private int _id;
    
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        private string _name, _thumbnailUrl, _shortDescription;
    
        public string ShortDescription
        {
            get { return _shortDescription; }
            set { _shortDescription = value; }
        }
    
        public string ThumbnailUrl
        {
            get { return _thumbnailUrl; }
            set { _thumbnailUrl = value; }
        }
    
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
    
        public Video[] Videos {get; set; }
    }
    
    public class Video
    {
        public int Id {get; set;}
        public string Name {get; set;}
        //properties as appropriate.
    }
    

    PS:您可能想在这里使用Hammock 或至少System.Net.WebClient 之类的东西,而不是原始的网络请求。您可能还想查看Json.net,因为它是一个比 JavaScriptSerializer 更好的序列化库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 2013-03-03
      • 1970-01-01
      相关资源
      最近更新 更多