using System.Collections.Generic;
using System.Diagnostics;
using System.Collections;
using System.Runtime.Serialization;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
public RootObject() { this.items = new List<ExpandoObject>(); }
public Guid application_uid { get; set; }
public string formId { get; set; }
public int recordCount { get; set; }
public List<ExpandoObject> items { get; set; }
public static class DictionaryExtensions
public static IDictionary<TKey, TValue> AsDictionary<TKey, TValue>(this IDictionary<TKey, TValue> dictionary)
public static class DynamicExtensions
public static dynamic AsDynamic(this IDynamicMetaObjectProvider obj)
""application_uid"":""3912d337-b797-4508-8c95-c76df8888ada"",
""lastModified"":""2015-12-11T20:07:25.774Z"",
""displayName"":""Anonymous Guest User"",
""login"":""Anonymous Guest User""
""created"":""2015-12-11T20:07:25.774Z"",
""displayName"":""Anonymous Guest User"",
""login"":""Anonymous Guest User""
""flowState"":""ST_End"",
""uid"":""5928bb18-5b53-43f9-8831-baab042e1ca2"",
""F_ReceivedYorN"":""Y"",
""F_ContractNumber"":""5556420121"",
""F_FileNumber"":""0630250"",
""F_SubscriberLastName"":""JEFFERY""
""lastModified"":""2015-12-11T20:07:25.774Z"",
""displayName"":""Anonymous Guest User"",
""login"":""Anonymous Guest User""
""created"":""2015-12-11T20:07:25.774Z"",
""displayName"":""Anonymous Guest User"",
""login"":""Anonymous Guest User""
""flowState"":""ST_End"",
""uid"":""1111bb18-1111-43f9-8831-baab042e1ca2"",
""F_SomeCustomProperty1"":""Y"",
""F_SomeCustomProperty2"":""5556420121"",
""F_SomeCustomProperty3"":""0630250"",
""F_SomeCustomProperty4"":""JEFFERY""
public static void Test()
Console.WriteLine("Raw Json:\n");
Console.WriteLine(JToken.Parse(json));
var root = JsonConvert.DeserializeObject<RootObject>(json);
foreach (var item in root.items)
Console.WriteLine(string.Format("Showing custom properties for Item id {0}, uid {1}, flowState \"{2}\":",
item.AsDynamic().id, item.AsDynamic().uid, item.AsDynamic().flowState));
foreach (var field in item.AsDictionary())
if (field.Key == "id" || field.Key == "uid" || field.Key == "flowState")
Console.WriteLine(string.Format(" - Field: \"{0}\":\n Value: {1}", field.Key, JsonConvert.SerializeObject(field.Value)));
public static void Main()
Console.WriteLine(string.Format("Json.NET version: {0}.\n", typeof(JsonSerializer).Assembly.FullName));