我收到一些应该代表某个类的法律对象的json。我想证实情况确实如此。所以我反序列化了字符串以查看这是否成功。这非常耗时,因为在某些情况下字符串会变得非常大,而且有很多。因此,我正在寻找一种不同的方法。
我想从类的定义创建一个正则表达式,并检查我收到的 json 是否兼容。有没有办法从 C# 类生成正则表达式?
任何其他建议也会有所帮助。
谢谢
使用Newtonsoft的JSON模式验证器,更多详细信息在这里
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; }
}