我從JSON格式的API服務器獲得答案。然後我嘗試用json.net反序列化它並調用一些對象。但是這導致了NullReferenceException。在調試期間,我確實發現從_507888780開始的類在反序列化json字符串時不會被填充。 我希望你的某個人能幫我解決這個問題。json.net DeserializeObject不填充導致NullReferenceException的類
我使用的反序列化,並調用對象的代碼:
string file = "{\"status\":\"ok\",\"meta\":{\"count\":1},\"data\":{\"507888780\":[{\"all\":{\"spotted\":467,\"hits_percents\":83,\"wins\":281,},\"tank_id\":2849},{\"all\":{\"spotted\":224,\"hits_percents\":63,\"wins\":32,},\"tank_id\":9473}]}}";
Rootobject rootobject = JsonConvert.DeserializeObject<Rootobject>(file);
Console.WriteLine(rootobject.data._507888780[1].tank_id);
Console.WriteLine(rootobject.data._507888780[1].all.hits_percents);
及其類別至極由VS自動創建:
public class Rootobject
{
public string status { get; set; }
public Meta meta { get; set; }
public Data data { get; set; }
}
public class Meta
{
public int count { get; set; }
}
public class Data
{
public _507888780[] _507888780 { get; set; }
}
public class _507888780
{
public All all { get; set; }
public long tank_id { get; set; }
}
public class All
{
public long spotted { get; set; }
public long hits_percents { get; set; }
public long wins { get; set; }
}
我也把測試項目.NET小提琴,讓您可以更輕鬆地重現它: https://dotnetfiddle.net/gwSA1C 您還可以在那裏看到Json字符串。
謝謝,完美的作品:) – Ben