2012-10-19 65 views
1

我有2類:創建JSON多層次與Json.NET在C#

class Employee 
{ 
    string name; 
    string age; 
} 

class Departments 
{ 
    string branch; 
    Employee A; 
} 

聲明新的列表:

List<Departments> lstDp = new List<Departments>(); 

後get/set方法和添加僱員到列表...我有一個部門名單包括員工信息。然後:

string json = JsonConvert.SerializeObject(lstDp, Newtonsoft.Json.Formatting.Indented); 

但輸出JSON字符串只包含元素「分支」。這有什麼問題?我想這樣的輸出:

[ 
    { 
    "branch": "NY", 
    "Employee": { 
     "name": "John Smith", 
     "age": "29", 
    } 
    } 
] 
+0

** 1)**您的字段不公開,它們不會被序列化** 2)**您的json不正確。輸出中不會有'Employee'字符串。這將是'A' ** 3)**'A'不是一個列表。這是一名員工。 –

回答

2

的問題可以是一些類成員是私有的。剛剛測試:

class Employee 
{ 
    public string Name { get; set; } 
    public string Age { get; set; } 
} 

class Departments 
{ 
    public string Branch { get; set; } 
    public Employee Employee { get; set; } 
} 

而且

var lstDp = new List<Departments> { 
      new Departments { 
       Branch = "NY", 
       Employee = new Employee { Age = "29", Name = "John Smith" } 
      } 
     }; 
var json = JsonConvert.SerializeObject(lstDp, Formatting.Indented); 

工作正常。

1

Department應包含IEnumerable<Employee>不只是一個Employee