private JSchema InternalGenerate(JArray json, JPath path) { if (json == null) { return(null); } return(new JSchema(JsonSchemaType.Array, JsonSchemaExtendedType.Array) { Id = path.ToString("/"), Field = path.ToString("."), Items = json.Aggregate( new JSchema(JsonSchemaType.None, JsonSchemaExtendedType.None), (schema, token) => schema.Merge( InternalGenerate(token as JObject, path) ?? InternalGenerate(token as JValue, path) ?? InternalGenerate(token as JArray, path)) ) }); }