asp.net-mvc - queryBuilder.js - 如何将 JSON 规则转换为 IFilterRule?
问题描述
我们将过滤器查询作为 JSON 字符串存储在数据库中
但是,当尝试将其转换为 IFilterRule 时,它会引发错误
我检索查询并尝试将其反序列化为 IFilterRule
var includeQuery = JsonConvert.DeserializeObject<IFilterRule>(x.IncludeQuery);
var data = _usedService.Find(id).BuildQuery(includeQuery).ToList();
但它抛出了这个错误,关于我做错了什么的任何想法?
Could not cast or convert from System.String to Castle.DynamicLinqQueryBuilder.IFilterRule.
[ArgumentException: Could not cast or convert from System.String to Castle.DynamicLinqQueryBuilder.IFilterRule.]
Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType) +244
Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType) +123
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) +486
[JsonSerializationException: Error converting value "{
condition: "AND",
rules: [
{
id: "Status",
field: "Status",
type: "integer",
input: "checkbox",
operator: "in",
value: [
2,
3
]
}
],
"valid": true
}" to type 'Castle.DynamicLinqQueryBuilder.IFilterRule'. Path '', line 1, position 335.]
解决方案
推荐阅读
- c++ - c++ 显示给文件中得分最高的用户
- html - ion-align-items 类不居中 ionic HTML 元素
- r - 如何在 R 中记录环境变量?
- excel - Excel 持续评估是否满足条件
- list - 如何在 terraform locals 中迭代对象列表
- react-native - 通过 react-native-web 找出操作系统
- vb.net - 如何解决——无效的索引。(来自 HRESULT 的异常:0x8002000B (DISP_E_BADINDEX))?
- perl - 如何只切片定义的值?
- android - kotlin 从不同的 kotlin 类文件开始新活动
- python - 使用 if 条件从现有 CSV 创建列