JSON反序列化:多个对象中

问题描述:

我的示例代码,即做工精细。JSON反序列化:多个对象中

public class Employee 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public string Address { get; set; } 
} 


    private void JSONDeserilaize() 
{ 
    string json = @"{ 
     'ID': '1', 
     'Name': 'Manas', 
     'Address': 'India' 
    }"; 

    Employee empObj = JsonConvert.DeserializeObject<Employee>(json); 

    Response.Write(empObj.Name); 
} 

但我的json字符串是这种格式。

string json = @"{"ID": "1","Name": "Manas","Address": "India","data":{"EmpDeptId":"20172807"}}"; 

如何用ID,姓名和地址一起取EmpDeptId。

声明另一类为反序列化到对象,然后将其添加作为原始类的成员:

public class Employee 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public string Address { get; set; } 
    public EmployeeData Data { get; set; } 
} 

public class EmployeeData 
{ 
    public string EmpDeptId {get; set; } 
} 

应该然后反序列化为data相应。

+1

如果你想Employee.EmpDeptId然后添加一行 公共字符串EmpDeptId {{返回this.Data.EmpDeptId; set {this.Data.EmptDeptId = value; }}员工类 – IamSilviu

+1

@IamSilviu你为什么要那样做?这已经是'Data',你则只是在重复自己的对象图的属性(它也可以被序列化回JSON)。 OP可以执行'employee.Data.EmptDeptId'来获取值。 – Lloyd

+0

@ Lioyd,谢谢你的帮助。它对我很好。 –