如何验证json是类对象的正确表示形式?

时间:2019-04-04 19:27:58

标签: c# regex

我收到了一些json,它们应该代表某个类的合法对象。 我希望证实确实如此。因此,我对字符串进行反序列化以查看是否成功。这是非常耗时的,因为在某些情况下字符串会变得很大,并且其中有很多。因此,我正在寻找一种不同的方法。

我想从类的定义中创建一个regExp,并检查我收到的json是否兼容。有没有办法从C#类生成regExp?

其他任何建议也会有所帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

使用newtonsoft的JSON模式验证器,更多详细信息here


        public class JsonSchemaController : ApiController
    {
        [HttpPost]
        [Route("api/jsonschema/validate")]
        public ValidateResponse Valiate(ValidateRequest request)
        {
            // load schema
            JSchema schema = JSchema.Parse(request.Schema);
            JToken json = JToken.Parse(request.Json);

            // validate json
            IList<ValidationError> errors;
            bool valid = json.IsValid(schema, out errors);

            // return error messages and line info to the browser
            return new ValidateResponse
            {
                Valid = valid,
                Errors = errors
            };
        }
    }

    public class ValidateRequest
    {
        public string Json { get; set; }
        public string Schema { get; set; }
    }

    public class ValidateResponse
    {
        public bool Valid { get; set; }
        public IList<ValidationError> Errors { get; set; }
    }