JsonValidator - 缺少错误行(Newtonsoft Json)

时间:2017-02-17 16:45:22

标签: c# json error-handling json.net

我使用自定义JsonValdiators来验证json文件。这是班级:

public class IntValueValidator : JsonValidator
{
    public override bool CanValidate(JSchema schema)
    {
        return schema.Format == "intValue";
    }

    public override void Validate(JToken value, JsonValidatorContext context)
    {
        if (value.Type == JTokenType.Integer)
        {
            var inputString = (int)value;
            if (inputString > 15)
            {
                context.RaiseError($"Int value too high, should be < 16 was {inputString}");
            }

        }
    }
}

我想提出一个错误,说明错误发生在文件中的哪一行。目前传递给.IsValid()函数的错误列表中的LineNumber属性:

json.IsValid(_schema, out listOfErr)

总是空的。

架构:

_schema = generator.Generate(typeof(MyClass));
        var settings = new JSchemaReaderSettings
        {
            Validators = new List<JsonValidator> { new IntValueValidator() }
        };
        _schema = JSchema.Parse(_schema.ToString(), settings);

任何想法如何访问Validate函数内的行号?

0 个答案:

没有答案