1

我目前在解析我的 json 架构时遇到问题Json.NET。我的架构由一个数组组成,其项目可以是两种不同的类型,如下例所述:

"Operations": {
        "type": "array",
        "id": "Operations",
        "required": true,
        "items": {
            "type": [
                {
                    "type": "object",
                    "properties": {
                        "Sale_ID": {
                            "type": "number",
                            "id": "Sale_ID",
                            "required": false
                        },
                  },
                    "additionalProperties": false
                },
                {
                    "type": "object",
                    "properties": {
                        "Purchase_ID": {
                            "type": "number",
                            "id": "Purchase_ID",
                            "required": false
                        },
                  },
                    "additionalProperties": false
                }

这个模式在多个验证器中得到验证,总是成功的。我试图将其解析为JsonSchema

JsonSchema js = JsonSchema.Parse(schemaAsString);

但是,我得到一个JsonReaderException

异常 JSON 模式类型字符串令牌,得到 StartObject

我猜这是因为我的项目类型不是字符串。我想知道是否可以在中定义非字符串类型Json.NET,或者这是否是一个已知问题/限制。

4

1 回答 1

2

Json.NET不支持type属性中的复杂模式。

更新:

Json.NET Schema现在完全支持 Draft 3 和 Draft 4,其中包括对 type 属性中复杂架构的支持。

于 2013-01-29T22:46:02.463 回答