如何验证 Jarray 响应数据架构

问题描述

我有一个类似于以下内容的 json 模式验证函数

private void ValidateJsonSchema<T>(string jsonData)
    {
        var schema = JsonSchema.FromType<T>();
        var errors = schema.Validate(jsonData);
    }

param jsonData 是响应的内容,但有时它会是一个像下面这样的数组

[
    {
        "id": "123","title": "abc"
    },{
        "id": "456","title": "def"
    }
]

那我该如何处理?

解决方法

我尝试了以下代码并且它有效:

        var schema = JsonSchema.FromType(type);
        var jtoken = JToken.Parse(jsonData);
        if (jtoken.Type == JTokenType.Array)
            schema.Type = JsonObjectType.Array;
        var errors = schema.Validate(jtoken);