Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从另一个类获取列表的值_C#_Json - Fatal编程技术网

C# 从另一个类获取列表的值

C# 从另一个类获取列表的值,c#,json,C#,Json,我试图获取歌曲信息,这是从JSON文件解析。 这是我的音乐类,用于解析数据并将数据写入列表 我想把这个列表分配给一个普通的列表,但不能这样做,我只得到100条记录的标题AsemblyName.Namespace.Music+TrackData(在我的本地库中) 所以我想把所有的值放在一个字符串中(每首歌曲的所有数据都在一个字符串中),并且能够获取所有歌曲的数据,而不仅仅是第一首歌曲的数据 尝试了很多事情,但似乎没有任何帮助。对不起,这个问题可能比较简单,但我是C语言的新手# 提前感谢。首先,您确

我试图获取歌曲信息,这是从JSON文件解析。 这是我的
音乐
类,用于解析数据并将数据写入
列表

我想把这个列表分配给一个普通的列表,但不能这样做,我只得到100条记录的标题
AsemblyName.Namespace.Music+TrackData
(在我的本地库中)

所以我想把所有的值放在一个字符串中(每首歌曲的所有数据都在一个字符串中),并且能够获取所有歌曲的数据,而不仅仅是第一首歌曲的数据

尝试了很多事情,但似乎没有任何帮助。对不起,这个问题可能比较简单,但我是C语言的新手#


提前感谢。

首先,您确定您的Json数据文件完好无损(在文本编辑器中打开并验证)。第二,你说的是“将这个列表分配给一个普通的列表,但不能这样做”——展示你已经尝试了什么。第三,为什么要将关于一首歌曲的所有信息放在一个巨大的字符串中,特别是因为类TrackData已经提供了这些整洁的属性?重新标记。它似乎与WPF或Metro设计语言没有任何关系。
public class Music
{
    [DataContract]
    public class TrackData
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int owner_id { get; set; }
        [DataMember]
        public string artist { get; set; }
        [DataMember]
        public string title { get; set; }
        [DataMember]
        public int duration { get; set; }
        [DataMember]
        public string url { get; set; }
        [DataMember]
        public int genre_id { get; set; }
        [DataMember]
        public int? lyrics_id { get; set; }
        [DataMember]
        public int? album_id { get; set; }
    }

    [DataContract]
    public class JsonData
    {
        [DataMember]
        public int count { get; set; }
        [DataMember]
        public List<TrackData> items { get; set; }
    }

    [DataContract]
    public class JsonResponse
    {
        [DataMember]
        public JsonData response { get; set; }
    }

    public static JsonResponse Deserialize(String Json)
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(JsonResponse));
        MemoryStream stream1 = new MemoryStream(Encoding.UTF8.GetBytes(Json));
        JsonResponse result = (JsonResponse)ser.ReadObject(stream1);
        return result;
    }
}
Music.JsonResponse Response = Music.Deserialize(await GetAudio()); // This is working like a charm, so no need to rewrite this function
Music.JsonData Data = Response.response; // Assigning Parsed JSON to the class and later to TrackData
Music.TrackData Track = Data.items.FirstOrDefault(); // I need data for all of the tracks, not only for the first one
MessageDialog ResultDialog = new MessageDialog(Track.artist); // So im getting only first value of the List
ResultDialog.ShowAsync();