Ich versuche, JSON (hier ist der Link zu ihm http://antica.e-sim.org/apiFights.html?battleId=3139&roundId=1) in eine Liste von Objekten zu deserialisieren.Deserialisieren von JSON in eine Liste von Objekten - Listentyp
Das ist meine Klasse:
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();
}
}
Dies ist, wie ich die json bekommen und versuchen, es deserialisieren:
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());
Wenn ich versuche, es gibt mir eine Ausnahme desereliaze:
Eine nicht behandelte Ausnahme des Typs "Newtonsoft.Json.JsonSerializationException" trat inauf Weitere Informationen: Listentyp Project.Battles kann nicht erstellt und aufgefüllt werden. Pfad '', Zeile 3, Position 1.
Was mache ich falsch?
@PaulAbbott - es kann ein Duplikat sein, aber diese Antwort ist veraltet. Ich habe eine Antwort hinzugefügt, die Änderungen in Json.NET widerspiegelt, seit es gefragt wurde. – dbc