Десериализация Json в asp.net - PullRequest
       5

Десериализация Json в asp.net

0 голосов
/ 20 сентября 2011

У меня есть 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; }
    }

}

Пожалуйста, ответьте, если кто-то сделал такую ​​работу.

1 Ответ

0 голосов
/ 21 сентября 2011

Довольно сложно следить за вашим вопросом, но я думаю, что вы хотите сделать здесь коллекцию видео BrightCove, если я правильно помню API BrightCove.Итак, вам нужен двухслойный объект - один контейнер для списков воспроизведения, содержащий массив видео.То, что у вас есть, просто покрывает контейнер.Это должно выглядеть примерно так:

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: Вы, вероятно, хотите использовать что-то вроде Гамак или, по крайней мере, System.Net.WebClient , а не необработанные веб-запросы здесь,Вы также можете захотеть взглянуть на Json.net , так как это гораздо лучшая библиотека сериализации, чем JavaScriptSerializer.

...