我只是構建一個測試Web API,它需要一個JSON負載,並將簡單地從我的MVC控制器發回數組部分中的數據。JSON序列化混淆
這是由我人口稠密類連載我目前的JSON字符串:
{"JobList":[{"ID":1,"Name":"Dave","Age":23,"StartDate":"10/23/2013 6:22:50 AM","JobTitle":"Developer"},{"ID":2,"Name":"John","Age":44,"StartDate":"10/23/2013 6:22:50 AM","JobTitle":"QA"},{"ID":3,"Name":"Dave","Age":23,"StartDate":"10/23/2013 6:22:50 AM","JobTitle":"Senior Developer"}]}
這是一個用於創建這個JSON對象:
var jobList = new JobsList()
{
JobList = new List<Jobs>()
{
new Jobs()
{
Age = 23,
ID = 1,
Name = "Dave",
StartDate = DateTime.Now.ToString(),
JobTitle = "Developer"
},
new Jobs()
{
Age = 44,
ID = 2,
Name = "John",
StartDate = DateTime.Now.ToString(),
JobTitle = "QA"
},
new Jobs()
{
Age = 23,
ID = 3,
Name = "Dave",
StartDate = DateTime.Now.ToString(),
JobTitle = "Senior Developer"
}
}
};
這裏是我的個人類:
JobsList類別:
public class JobsList:IJobList
{
#region IJobList Members
public List<Jobs> JobList
{
get;
set;
}
#endregion
}
職位類別:
public class Jobs:Interfaces.IJobs
{
#region IJobs Members
public int ID
{
get;
set;
}
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
public string StartDate
{
get;
set;
}
public string JobTitle
{
get;
set;
}
#endregion
}
當我將我的JSON通過使用JSON2Csharp的類產生如圖生產類:
public class JobList
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string StartDate { get; set; }
public string JobTitle { get; set; }
}
public class RootObject
{
public List<JobList> JobList { get; set; }
}
這對我來說似乎不正確。任何人都可以解釋爲什麼我沒有得到我的JSON設置爲JobsList數組中的'Jobs'節點?爲什麼生成的JSON2CSharp類將我的'作業'類映射爲JobList類?
如果你已經有需要的類(反)序列化JSON的,你爲什麼要使用JSON2Csharp? –
@ LasseV.Karlsen它的興趣遠遠超過了任何東西,但是當生成的類似乎與我的不同時 - JSON字符串與我期望的略有不同 - 我不明白爲什麼它以這種方式映射。 – user1352057
從我所知道的看,這看起來更像是JSON2Csharp解析列表的能力問題。真的,只要你的程序可以序列化/反序列化你的JSON,你應該沒問題。 (另外,如果JSON2CSharp *確實*拿起你的作業節點,它可能會被稱爲「ChildObject」,因爲它不能從該序列化的JSON中知道你的類的名稱) – valverij