在 asp.net web api 中反序列化之前验证 JSON
Validating JSON before it gets deserialized in asp.net web api
我想在 json 输入反序列化为我的对象之前验证它
示例:
{"ID": ["1234"]}
,有效 = 并反序列化到我的 POCO class
{"ID": ["1234"
不是有效的 JSON 我想抛出一个错误
我想抛出一个错误,但现在 Web API 优雅地处理它并反序列化到适当的 class。无论如何我可以拦截转换并在输入 json 到达我的控制器之前对其进行验证?
了解您的文本是否有效 JSON 的唯一方法是尝试解析它。如果解析器抛出异常,则它是无效的 JSON。参见 How to make sure that string is Valid JSON using JSON.NET)。
如果您使用的是 NewtonSoft 的 Json.Net,您可以根据模式验证您的 JSON,这样您就知道您有
- 有效JSON,即
- 采用您期望的格式
见
了解详情。
我在控制器方法的开头简单检查:
if (!Model.IsValid(ModelName))
{
//handle error
}
else
{
//continue
}
我想在 json 输入反序列化为我的对象之前验证它
示例:
{"ID": ["1234"]}
,有效 = 并反序列化到我的 POCO class
{"ID": ["1234"
不是有效的 JSON 我想抛出一个错误
我想抛出一个错误,但现在 Web API 优雅地处理它并反序列化到适当的 class。无论如何我可以拦截转换并在输入 json 到达我的控制器之前对其进行验证?
了解您的文本是否有效 JSON 的唯一方法是尝试解析它。如果解析器抛出异常,则它是无效的 JSON。参见 How to make sure that string is Valid JSON using JSON.NET)。
如果您使用的是 NewtonSoft 的 Json.Net,您可以根据模式验证您的 JSON,这样您就知道您有
- 有效JSON,即
- 采用您期望的格式
见
了解详情。
我在控制器方法的开头简单检查:
if (!Model.IsValid(ModelName))
{
//handle error
}
else
{
//continue
}