public static dynamic ToDynamicArray(this JArray jArray, List <DynamicViewModel> parent) { foreach (var jToken in jArray) { if (jToken is JObject) { dynamic property = (jToken as JObject).ToDynamic(DynamicViewModelFactory.Create()); parent.Add(property); } else if (jToken is JArray) { dynamic property = (jToken as JArray).ToDynamicArray(new List <DynamicViewModel>()); parent.Add(property); } } return(parent); }
public static dynamic ToDynamic(this JObject jObject, DynamicViewModel parent) { foreach (var kvPair in jObject) { var value = kvPair.Value; if (value is JObject) { dynamic property = (value as JObject).ToDynamic(DynamicViewModelFactory.Create()); parent.Set(kvPair.Key, property); } else if (value is JArray) { // It's an array - make the property a collection. dynamic property = (value as JArray).ToDynamicArray(new List <DynamicViewModel>()); parent.Set(kvPair.Key, property); } else { parent.Set(kvPair.Key, value); } } return(parent); }