JsonObjectAttribute.Id是什么?

xme*_*eko 5 c# json.net

JSON.NET JsonObjectAttribute具有一个属性Id。它是从继承的JsonContainerAttribute。我找不到,因为使用了什么Id属性?

dbc*_*dbc 1

Json.NET Schema使用它"$id"在生成类型的架构时覆盖默认属性值。

例如,如果我有以下类型:

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

JSchemaGenerator并使用以下命令自动生成架构:

var schema = new JSchemaGenerator().Generate(typeof(RootObject)).ToString();
Run Code Online (Sandbox Code Playgroud)

结果是(此处演示小提琴):

{
  "$id": "http://foo.bar/schemas/rootobject.json",
  "type": "object"
}
Run Code Online (Sandbox Code Playgroud)

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

根据JamesNK 的说法,它也被过时的人JsonSchemaGenerator使用:

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