我有一些带有此架构的JSON:
{
"person":{
"name":"test",
"family":"testi"
},
"Employee":{
"id":54,
"department":"web development",
"skils":[{"type":"C#", "grade":"good"},{{"type":"SQL", "grade":"Expert"}}]
}
}
我需要将此JSON映射到以下类:
class Employee {
public int id { get; set; }
public string Name { get; set; }
public string Family { get; set; }
public string Department { get; set; }
public Skill[] Skills { get; set;}
}
class skill {
public string Type { get; set; }
public string Grade { get; set; }
}
现在有什么方法可以将我的JSON模式映射到我的C#对象?我正在使用newtonsoft.json库,并且正在尝试使用这样的 JsonProperty
属性:
[JsonProperty("Person.Name")]
在我的Employee
类上。但这不起作用。有什么方法可以解决此问题?
您的班级不适合您的JSON。您必须平衡类的属性和JSON对象的属性。您的JSON拥有一个名为Person的财产,但您的班级没有。
MappedObject mappedObject = JsonConvert.DeserializeObject<MappedObject>(yourJson);
class MappedObject{
public Person person;
public Employee employee;
}
class Person{
public string name;
public string family;
}
class Employee {
public intid{get; set;}
public string deartment {get; set;}
public Skill[] skills {get; set;}
}
class skill{
public string type{get; set;}
public string grade{get; set;}
}
或更好的方法可以使用动态对象。
dynamic result = new ExpandoObject();
result = JsonConvert.DeserializeObject(yourJson);