我正在尝试解析.json文件中的数据,并将它们放在名为“Track”的类的列表中
该课程如下:
public class Track
{
public string Artist { get; set; }
public string Album { get; set; }
public string Title { get; set; }
public int TrackNumber { get; set; }
public string Filepath { get; set; }
public int SongLength { get; set; }
public Color RGB { get; set; }
}
我的代码看起来像这样:
private void Load()
{
using (StreamReader r = new StreamReader("C:\Users\Swagger\Desktop\Test\MusicCacheP.json"))
{
string json = r.ReadToEnd();
List<Track> items = JsonConvert.DeserializeObject<List<Track>>(json);
MSG(items.Count.ToString());
//MSG is just a function which gives me a messagebox. I'm too lazy to write the full messagebox.show.. ;)
}
}
我不知道这是否重要,但这里有一些json代码:
{"Artist":"Dirty South","Album":"Until the End","Title":"Until the End (Michael Brun Mix) [feat. Joe Gil]","TrackNumber":0,"Filepath":"\\\\DAVIDIOSO\\Users\\hasht_000\\Music\\Dirty South - Until the End (Michael Brun Mix) [feat. Joe Gil].mp3","SongLength":21,"RGB":""}
我还没有真正使用Json来充分了解它是如何工作的。我是那种喜欢边做边学的人。但是如果你在C#中有一些关于json的好页面,我会很高兴看到它:)
编辑:
我疯了!我无法弄清楚为什么我会得到这个例外..
我只获得了文件路径的异常。
疯狂的是我有另一个文件包含其中的所有文件路径,我也用json读过。而且效果很好。
“ghetto”解决方案是读取仅包含文件路径的文件并使用它来填充我的Track列表?但是把这个整理好了会很好.. 任何帮助真的很感激! :)
答案 0 :(得分:2)
您已在班级中将RGB
定义为Color
,并将json
中的内容指定为字符串类型。您可以修改类以使字符串类型为RGB
,然后将该字符串值转换为Color
。
public class RootObject
{
public string Artist { get; set; }
public string Album { get; set; }
public string Title { get; set; }
public int TrackNumber { get; set; }
public string Filepath { get; set; }
public int SongLength { get; set; }
public string RGB { get; set; } //here
}
从json自动创建类模板
答案 1 :(得分:2)
所以,我自己不得不回答这个问题感到非常尴尬。
我忘记做的是从文件阅读器中删除一个字母“p”。所以它的文件只包含音乐的文件路径,而不是艺术家,曲目名称,专辑名称等......
我不敢相信我直到现在才看到它!
自从我第一次遇到这个问题以来已经过了2-3天,这很容易解决..