.net - 当所有值都是字符串形式时,如何在.Net Core中验证json字符串中的字段数据类型?
问题描述
我试图在.Net Core 中反序列化之前验证 JSON 字符串的属性数据类型。问题是 JSON 中的值是字符串形式,无论是 bool 还是 int。
例如:对于对象:
class employee
{
int id;
string name;
bool isActive;
}
JSON是:
Jobject jObj = JObject.Parse(
{
"id" : "12",
"name" : "john",
"isActive" : "false"
});
我尝试过使用 JSON 模式(Newtonsoft.Schema 和 NJsonSchema),但它将JSON 中的值类型(即此处的字符串)与模式中的属性类型(模式是从对象生成的)进行比较,而不是比较实际类型值(就像“假”的实际类型是布尔值)。因此在验证期间总是返回类型不匹配错误。
用于 NJsonSchema 的代码:
schema = schema.FromType<Employee>();
errors = schema.validate(jObj);
除了使用模式之外,还有更好的方法吗?(首选)
或者也许向模式添加选项?
解决方案
推荐阅读
- php - 表单提交后 $_POST 没有得到值
- javascript - JavaScript 合并画布和视频上下文
- angularjs - uibModal 完全禁用背景并允许背景点击
- javascript - 如何在 ie 11 throught javascript 或 ie 设置中打开新进程中的选项卡
- c# - DataGridView 对象引用未设置为对象的实例
- php - 从控制器调用 Phalcon TaskAction
- c - 使用 malloc 两次后“堆已损坏”
- angular - 如何在 Angular 的传单绘制中创建自定义控件?
- docker - 向 Docker 构建添加大文件会导致 EOF 异常
- swift - Swift 约束警告