简体   繁体   中英

c# iterate through json

Currently I am working on a soundcloud downloader in C#. With the help of the SoundCloud API I get a JSON string of a playlist, which includes a lot of information of the tracks:

http://pastebin.com/HfrjqyJE

I tried it with:

JObject results = JObject.Parse(e.Result);
foreach (var result in results["tracks"])
{
     string streamUrl = (string)result["stream_url"];
     string title = (string)result["title"];
}

it worked but it needs about 20 secs to iterate through a playlist with only 2 tracks. Is there a way to make this iteration process faster?

Perhaps looping over the properties using JProperty, performs better?

    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));
    }

You could try using Newtonsoft JSON Deserializer .

For your case you could do something like this:

  1. Create a Track class with needed properties

  2. Apply DeserializeObject

     Track jsonObject = JsonConvert.DeserializeObject<Track >(json); 
  3. Iterate over jsonObject

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM