Search code examples
c#asp.netjsonjson.net

Parsing a JSON array using Json.Net


I'm working with Json.Net to parse an array. What I'm trying to do is to pull the name/value pairs out of the array and assign them to specific variables while parsing the JObject.

Here's what I've got in the array:

[
  {
    "General": "At this time we do not have any frequent support requests."
  },
  {
    "Support": "For support inquires, please see our support page."
  }
]

And here's what I've got in the C#:

WebRequest objRequest = HttpWebRequest.Create(dest);
WebResponse objResponse = objRequest.GetResponse();
using (StreamReader reader = new StreamReader(objResponse.GetResponseStream()))
{
    string json = reader.ReadToEnd();
    JArray a = JArray.Parse(json);

    //Here's where I'm stumped

}

I'm fairly new to JSON and Json.Net, so it might be a basic solution for someone else. I basically just need to assign the name/value pairs in a foreach loop so that I can output the data on the front-end. Has anyone done this before?


Solution

  • You can get at the data values like this:

    string json = @"
    [ 
        { ""General"" : ""At this time we do not have any frequent support requests."" },
        { ""Support"" : ""For support inquires, please see our support page."" }
    ]";
    
    JArray a = JArray.Parse(json);
    
    foreach (JObject o in a.Children<JObject>())
    {
        foreach (JProperty p in o.Properties())
        {
            string name = p.Name;
            string value = (string)p.Value;
            Console.WriteLine(name + " -- " + value);
        }
    }
    

    Fiddle: https://dotnetfiddle.net/uox4Vt