我收到了一些json,它们应该代表某个类的合法对象。 我希望证实确实如此。因此,我对字符串进行反序列化以查看是否成功。这是非常耗时的,因为在某些情况下字符串会变得很大,并且其中有很多。因此,我正在寻找一种不同的方法。
我想从类的定义中创建一个regExp,并检查我收到的json是否兼容。有没有办法从C#类生成regExp?
其他任何建议也会有所帮助。
谢谢
答案 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; }
}