什么是JsonObjectAttribute.Id?

时间:2016-03-04 07:43:21

标签: c# json.net

JSON.NET JsonObjectAttribute有一个属性Id。它继承自JsonContainerAttribute。我找不到,因为使用了Id属性?

1 个答案:

答案 0 :(得分:0)

Json.NET Schema使用它来为类型生成模式时覆盖默认的"$id"属性值。

例如如果我有以下类型:

[JsonObject(Id = "http://foo.bar/schemas/rootobject.json")]
public class RootObject { }

并使用JSchemaGenerator自动生成模式,如下所示:

var schema = new JSchemaGenerator().Generate(typeof(RootObject)).ToString();

结果是(演示小提琴here):

{
  "$id": "http://foo.bar/schemas/rootobject.json",
  "type": "object"
}

当不被覆盖时,"$id"的值由SchemaIdGenerationHandling枚举控制。

obsolete JsonSchemaGenerator还根据JamesNK使用了它:

  

它已由JsonSchemaGenerator使用,但已弃用。