using Newtonsoft.Json.Linq;
public static void Main(string[] args)
JArray array = JArray.Parse(JSON);
foreach (JToken itm in array) {
JArray updates = (JArray)itm.SelectToken("updates");
if (updates == null) continue;
Console.WriteLine(updates.Path);
foreach(JToken child in updates) {
Console.WriteLine(child + " " + child.Type + " " + child.Path);
private static void recurseParse(JToken jToken){
if (jToken.Type == JTokenType.Array) {
recurseParseArray((JArray)jToken);
} else if (jToken.Type == JTokenType.Object) {
recurseParseObject((JObject)jToken);
Console.WriteLine(jToken.ToString());
private static void recurseParseArray(JArray array)
recurseParseChildren(array);
private static void recurseParseObject(JObject obj)
foreach (JProperty prop in obj.Properties())
recurseParseChildren(prop);
private static void recurseParseChildren(JToken parent) {
if (parent.Type == JTokenType.Property) {
Console.Write(((JProperty)parent).Name + ": ");
foreach (JToken c in parent.Children()) {
private static readonly string JSON = @"[