При использовании NJsonSchma есть настройка дополнительных свойств, но когда мы создаем схему с помощью FromType, а затем устанавливаем параметр AllowAdditionalProperties, он будет применяться только к верхнему уровню.
Например:
Код: Выделить всё
NJsonSchema.JsonSchema4 schema = JsonSchema4.FromType();
schema.AllowAdditionalProperties = true;
public class Item
{
public string code { get; set; }
public string name { get; set; }
}
public class Top
{
public List data { get; set; }
}
т.е.
Код: Выделить всё
// allowed even ref is not defined in Top
var js = "{\"data\":[{\"code\":\"A01\",\"name\":\"apple\"}],\"ref\":\"A01\"}";
// ArrayItemNotValid as price is not defined in Item
var js = "{\"data\":[{\"code\":\"A01\",\"name\":\"apple\",\"price\":1.0}],\"ref\":\"A01\"}";
Код: Выделить всё
public static void SetAditionalProperties(JsonProperty jp)
{
jp.AllowAdditionalProperties = true;
foreach (KeyValuePair kv in jp.Properties)
{
SetAditionalProperties(kv.Value);
}
}
Кажется, что это просто настройка по умолчанию при создании схемы, но мы не можем найти такую опцию (возможно, мы пропустили), кто-нибудь знает, как мы можем изменить эту настройку при создании схемы?
Подробнее здесь: https://stackoverflow.com/questions/388 ... schema-wit
Мобильная версия