internal static IEnumerable<JValue> FlatArray(JValue val) { if (val == null) yield break; if (val.Type != TokenType.Array) { yield return val; yield break; } foreach (var item in ((JArray)val).Items) { foreach (var innerItem in FlatArray(item)) //HACK: remove recursion { yield return innerItem; } } }
internal static ICfgNode CreateByJsonValue(JValue val) { if (val == null) return null; switch (val.Type) { case TokenType.Null: return new ViewPlainField(null); case TokenType.Object: return new ViewObject((JObject)val); case TokenType.String: case TokenType.Boolean: case TokenType.Number: return new ViewPlainField(val.ToString()); default: throw new NotSupportedException(string.Format("JSON type {0} not supported", val.Type)); } }