[英]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.