c# 遍历 json
c# iterate through json
目前我正在使用 C# 开发一个 soundcloud 下载器。在 SoundCloud API 的帮助下,我得到了一个播放列表的 JSON 字符串,其中包含很多曲目的信息:
我试过:
JObject results = JObject.Parse(e.Result);
foreach (var result in results["tracks"])
{
string streamUrl = (string)result["stream_url"];
string title = (string)result["title"];
}
它有效,但它需要大约 20 秒来遍历只有 2 个曲目的播放列表。有没有办法让这个迭代过程更快?
也许使用 JProperty 遍历属性,性能更好?
string json = "{a: 10, b: 'aaaaaa', c: 1502}";
JObject parsedJson = JObject.Parse(json);
foreach (JProperty property in parsedJson.Properties())
{
Console.WriteLine(string.Format("Name: [{0}], Value: [{1}].", property.Name, property.Value));
}
您可以尝试使用 Newtonsoft JSON Deserializer。
对于你的情况,你可以这样做:
创建具有所需属性的曲目class
应用反序列化对象
Track jsonObject = JsonConvert.DeserializeObject<Track >(json);
遍历 jsonObject
目前我正在使用 C# 开发一个 soundcloud 下载器。在 SoundCloud API 的帮助下,我得到了一个播放列表的 JSON 字符串,其中包含很多曲目的信息:
我试过:
JObject results = JObject.Parse(e.Result);
foreach (var result in results["tracks"])
{
string streamUrl = (string)result["stream_url"];
string title = (string)result["title"];
}
它有效,但它需要大约 20 秒来遍历只有 2 个曲目的播放列表。有没有办法让这个迭代过程更快?
也许使用 JProperty 遍历属性,性能更好?
string json = "{a: 10, b: 'aaaaaa', c: 1502}";
JObject parsedJson = JObject.Parse(json);
foreach (JProperty property in parsedJson.Properties())
{
Console.WriteLine(string.Format("Name: [{0}], Value: [{1}].", property.Name, property.Value));
}
您可以尝试使用 Newtonsoft JSON Deserializer。
对于你的情况,你可以这样做:
创建具有所需属性的曲目class
应用反序列化对象
Track jsonObject = JsonConvert.DeserializeObject<Track >(json);
遍历 jsonObject