以下是小片段:
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"
]
}
}
但令牌变量总是{}(空)。有什么问题?
答案 0 :(得分:0)
我还认为JToken
转换会将JSON架构视为JSON对象。由于每个JSON模式本身都是JSON,因此该用法对我们有意义。
但是,the implementation清楚地表明转换为JToken
实际上会创建与当前架构关联的 new JSON对象。同样,JToken
的转换访问了相关的架构。
就我个人而言,我觉得这种演员的使用令人困惑。
我们可以通过将模式重新解析为普通JSON来解决它:
var json = JObject.Parse(schema.ToString());