C# Json.Net:JSchema到Jtoken的转换问题

C# Json.Net:JSchema到Jtoken的转换问题,c#,json.net,C#,Json.net,下面是一个小片段: foreach (KeyValuePair<string, JSchema> pair in dict) { JToken token = pair.Value; string path = token.Path; ... } JSchema对象可能包含如下内容: { "title": "Массив предупреждений", "type": "array", "items": { "title"

下面是一个小片段:

foreach (KeyValuePair<string, JSchema> pair in dict)
{
    JToken token = pair.Value;
    string path = token.Path;
    ...       
}
JSchema对象可能包含如下内容:

{
  "title": "Массив предупреждений",
  "type": "array",
  "items": {
    "title": "Предупреждение",
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "id": {
        "title": "Уникальный идентификатор предупреждения",
        "type": "string"
      },
      "element": {
        "title": "Идентификатор атрибута данных",
        "description": "Идентификатор атрибута данных в запросе, с которым связано предупреждение, может отсутствовать, если такая связь не установлена.",
        "type": "string"
      },
      "title": {
        "title": "Заголовок или название предупреждения",
        "type": "string"
      },
      "description": {
        "title": "Описание или полный текст предупреждения",
        "type": "string"
      }
    },
    "required": [
      "id",
      "title"
    ]
  }
}           

但是令牌变量总是{}(空)。怎么了?

我还认为
JToken
转换会将JSON模式视为JSON对象。因为每个JSON模式本身就是JSON,所以这种用法对我们来说是有意义的

但是,这清楚地表明,转换到
JToken
实际上创建了一个与当前模式关联的新JSON对象。类似地,从
JToken
的转换访问关联的模式

就我个人而言,我觉得使用强制类型转换令人困惑

我们可以通过将模式重新解析为纯JSON来解决这个问题:

var json = JObject.Parse(schema.ToString());

你能解释一下你想做什么并提供进一步的背景资料吗?我需要阅读JSchema obj中的Path属性。但它在JSchema类中是内部的。所以我尝试获取具有公共路径属性的JToken对象。您能告诉我们Jschema对象包含什么吗?当然。请看编辑后的帖子。
var json = JObject.Parse(schema.ToString());