将json数据转换为强类型视图
本文关键字:强类型 视图 转换 json 数据 | 更新日期: 2023-09-27 18:26:34
我尝试将JSON数据转换为模型。我试图通过创建类进行序列化,但在反序列化时出错
我的json数据
[{"Name":"Group1","Fields":[{"Field":"EmployeeSCP.Salary","Operator":"lt","Value":"50000","$$hashKey":"object:485"}],"Condition":"0"},
{"Name":"Group2","Fields":[{"Field":"EmployeeSCP.Salary","Operator":"gt","Value":"20000","$$hashKey":"object:495"}],"Condition":"0"},
{"groupCondition":"0"}]
型号
public class ValidationModelData
{
public string Name { get; set; }
public List<FieldsData> Fields { get; set; }
public string Condition { get; set; }
public string groupCondition { get; set; }
}
public class FieldsData
{
public string Field { get; set; }
public string Operator { get; set; }
public string Value { get; set; }
}
但是我在反序列化时出错了
ValidationModelData validations = JsonConvert.DeserializeObject<ValidationModelData>(validation.JsonMetaData);
您正在将JSON数组转换为C#对象。您必须使用数组或列表。我更喜欢列表而不是数组,因为如果您想添加/删除ValidationModelData
,那么调整数组的大小是昂贵的。
List<ValidationModelData> validations = JsonConvert.DeserializeObject<List<ValidationModelData>>(validation.JsonMetaData);
我怀疑您忽略了它是一个数组。所以你可以把它们放在数组中,也可以像一样列出
ValidationModelData[] validations = JsonConvert.DeserializeObject<ValidationModelData[]>(validation.JsonMetaData);