我已經在我的JSON文件反序列化與JSON文件,內部類與JSON.NET C#
"missionName": "missionname",
"thumb_image": "pics/mission-info.png",
"uplinkPage": [
{
"RPC": {
"name": "RPC",
"rpc": "",
"args": ""
},
"EXE": {
"name": "app1",
"prog": "",
"args": ""
},
"VM": {
"name": "VM",
"name": "",
"args": ""
},
"JAR": {
"name": "JAR",
"prog": "",
"args": ""
},
"link": {
"name": "somelink",
"url": ""
}
}
],
以下結構爲了這個,我有下面的類
public class EXE
{
public string name { get; set; }
public string prog { get; set; }
public string args { get; set; }
}
public class RPC
{
public string name { get; set; }
public string rpc { get; set; }
public string args { get; set; }
}
public class VM
{
public string name { get; set; }
public string args { get; set; }
}
public class JAR
{
public string name { get; set; }
public string prog { get; set; }
public string args { get; set; }
}
public class Link
{
public string name { get; set; }
public string url { get; set; }
}
public class UplinkPage
{
public VM[] vmList { get; set; }
public EXE[] exeList { get; set; }
public RPC[] rpcList { get; set; }
public JAR[] jarList { get; set; }
public Link[] linkList { get; set; }
}
public class Rootobject
{
public string missionName { get; set; }
public string thumb_image { get; set; }
public Uplinkpage[] uplinkPage { get; set; }
}
的uplinkPage部分可以每個EXE,RPC,VM ..部分都有一個或多個。我嘗試添加乘部分這樣
"EXE": {
"1": {
"name": "app1",
"data-prog": "",
"data-args": ""
},
"2": {
"name": "app2",
"data-prog": "",
"data-args": ""
}
}
當我做反序列化作爲這樣
Rootobject page = JsonConvert.DeserializeObject<Rootobject>(File.ReadAllText("mission1.json"));
我得到一個對象,我可以讀,除非我有相同類型的多重價值的一切,我只會得到其中一個。如果我宣佈部分作爲陣列
public EXE[] exeList { get; set; }
我將獲得最後一個,如果作爲
Dictionary<string,EXE> exeList {get; set;}
我會得到的第一個。我注意到,當我使用字典時,EXE的類型更改爲EXE1。
所以我想知道我在做什麼錯了?我在這裏執行一些任務嗎?
歡呼聲, ES
您是否可以控制JSON的格式? – dbc
是的,我完全控制它,但我認爲我使用的是不正確的。 – Goozo