Parsing a JSON array using Json.Net
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
Use Manatee.Jsonhttps://github.com/gregsdennis/Manatee.Json/wiki/Usage
And you can convert the entire object to a string, filename.json is expected to be located in documents folder.
var text = File.ReadAllText("filename.json"); var json = JsonValue.Parse(text); while (JsonValue.Null != null) { Console.WriteLine(json.ToString()); } Console.ReadLine();
I know this is about Json.NET but times are a-changing so if anybody stumbles here while using .NET Core/5+ System.Text.Json please don't despair becauseTry the new System.Text.Json APIs from .NET Blog show an example of this.
[ { "date": "2013-01-07T00:00:00Z", "temp": 23, }, { "date": "2013-01-08T00:00:00Z", "temp": 28, }, { "date": "2013-01-14T00:00:00Z", "temp": 8, },]
...
using (JsonDocument document = JsonDocument.Parse(json, options)){ int sumOfAllTemperatures = 0; int count = 0; foreach (JsonElement element in document.RootElement.EnumerateArray()) { DateTimeOffset date = element.GetProperty("date").GetDateTimeOffset(); (...)