1

i wnat to convert JSON data to model.i tried to serialize by creating class but i am getting error while deserializing

my json data

 [{"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"}]

model

 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; }
}

but i am getting error by deserializing

 ValidationModelData validations = JsonConvert.DeserializeObject<ValidationModelData>(validation.JsonMetaData);

2 Answers2

0

I suspected you overlook that it's an array. So you can either put them in array or List like so

ValidationModelData[] validations = JsonConvert.DeserializeObject<ValidationModelData[]>(validation.JsonMetaData);
TLJ
  • 4,525
  • 2
  • 31
  • 46
0

You are converting JSON array to C# object. You have to use array or list. I prefer List over array, because if you want to add/remove ValidationModelData then resizing arrays is expensive.

List<ValidationModelData> validations = JsonConvert.DeserializeObject<List<ValidationModelData>>(validation.JsonMetaData);
Avinash Jain
  • 7,200
  • 2
  • 26
  • 40