5
我正在構建一個小型應用程序,它從我無法控制的API抽取統計信息。 JSON字符串看起來是這樣的:將json字符串反序列化爲json.net對象
{
"weapons":
[
{
"aek":
{
"name":"AEK-971 Vintovka",
"kills":47,
"shots_fired":5406,
"shots_hit":858
},
"xm8":
{
"name":"XM8 Prototype",
"kills":133,
"shots_fired":10170,
"shots_hit":1790
},
}
]
}
和我對象被設置如下:
class WeapsCollection
{
public WeaponList[] Weapons { get; set; }
}
class WeaponList
{
public WeaponDetails AEK { get; set; }
public WeaponDetails XM8 { get; set; }
}
class WeaponDetails
{
public string Name { get; set; }
public int Kills { get; set; }
public int Shots_Fired { get; set; }
public int Shots_Hit { get; set; }
}
我沒有反序列化的字符串時,它被設置現在的方式,即任何問題我可以這樣做:
WeapsCollection weps = JsonConvert.DeserializeObject<WeapsCollection>(json);
Console.WriteLine(weps.Weapons.First().AEK.Name.ToString());
Console.ReadLine();
此輸出AEK-971 Vintovka
很好...但我不希望不同的武器作爲單獨的屬性。我希望能夠枚舉,做一個foreach每個武器或者是這樣的:
Console.WriteLine(weapons.Where(w => w.Kills > 30).Name.ToString());
任何提示,如何實現這一目標?
實際的武器列表是60+,但我一直在考慮在對它進行反序列化之前對JSON數據做一個字符串。替換(「[weaponName]」,「武器」),但我無法讓它工作無論是。
我會很感激任何提示。
謝謝大衛。它像一個魅力! – Fr3gU 2011-02-18 14:21:55