繁体   English   中英

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

[英]Json.Net: JSchema to Jtoken conversion issue

这是小片段:

foreach (KeyValuePair<string, JSchema> pair in dict)
{
    JToken token = pair.Value;
    string path = token.Path;
    ...       
}

JSchema类v2.0.0.0包含提供类型简单转换的隐式运算符。

public static implicit operator JToken (
    JSchema s
)

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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM