我試圖將json(這裏是指向它的鏈接http://antica.e-sim.org/apiFights.html?battleId=3139&roundId=1)反序列化爲對象列表。將json反序列化爲對象列表 - 無法創建並填充列表類型
這是我的課:
public class RootObject
{
public int Damage { get; set; }
public int Weapon { get; set; }
public bool Berserk { get; set; }
public bool DefenderSide { get; set; }
public double MilitaryUnitBonus { get; set; }
public int Citizenship { get; set; }
public int CitizenId { get; set; }
public bool LocalizationBonus { get; set; }
public string Time { get; set; }
public int MilitaryUnit { get; set; }
}
public class Battles: IEnumerable<RootObject>
{
public IEnumerable<RootObject> battles { get; set; }
public IEnumerator<RootObject> GetEnumerator()
{
return battles.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return battles.GetEnumerator();
}
}
這是我得到的JSON和嘗試反序列化:
string url = "http://" + serverEsim + ".e-sim.org/apiFights.html?battleId=" +
battles.ElementAt(k).Key + "&roundId=" + i;
WebRequest req = WebRequest.Create(url);
WebResponse resp = req.GetResponse();
StreamReader jsr = new StreamReader(resp.GetResponseStream());
Battles battle = JsonConvert.DeserializeObject<Battles>(jsr.ReadToEnd());
當我嘗試desereliaze它給了我一個例外:
類型爲 的未處理異常'Newtonsoft.Json.JsonSerializationException'發生在 Newtonsoft.Json.dll
附加信息:無法創建和填充列表類型 Project.Battles。路徑'',第3行,位置1.
我該怎麼做?
@PaulAbbott - 它可能是重複的,但答案已過時。自從問到問題時,我添加了一個反映Json.NET變化的答案。 – dbc