将json数据转换为强类型视图

convert json data to strongly typed view

本文关键字:强类型 视图 转换 json 数据      更新时间:2023-09-26

我尝试将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);