Ich kann die folgenden Daten deserialisiert, die ich verwende zum Testen deserialisieren und bekam es von den World Bank die folgenden Abfrage verwenden:Kann nicht json Daten
http://api.worldbank.org/countries/IRL/indicators/SP.DYN.CBRT.IN?
per_page=10&date=1960:2016&format=json
[
{
"page": 1,
"pages": 28,
"per_page": "2",
"total": 56
},
[
{
"indicator": {
"id": "SP.DYN.CBRT.IN",
"value": "Birth rate, crude (per 1,000 people)"
},
"country": {
"id": "IE",
"value": "Ireland"
},
"value": "21.2",
"decimal": "0",
"date": "1961"
},
{
"indicator": {
"id": "SP.DYN.CBRT.IN",
"value": "Birth rate, crude (per 1,000 people)"
},
"country": {
"id": "IE",
"value": "Ireland"
},
"value": "21.5",
"decimal": "0",
"date": "1960"
}
]
]
Meine Hauptklasse ist genanntes PageModel ist als solches definiert:
Die cl ass in dem Array verwendet wird, Daten genannt und wie folgt definiert ist:
public class Data
{
public Data()
{
this.Indicator = new Indicator();
this.Country = new Country();
}
[JsonProperty("indicator")]
public Indicator Indicator { get; set; }
[JsonProperty("country")]
public Country Country { get; set; }
[JsonProperty("date")]
public int Date { get; set; }
[JsonProperty("value")]
public float Value { get; set; }
[JsonProperty("decimal")]
public decimal Decimal { get; set; }
}
Sowohl die Länder- und Indikatorklassen sind wie folgt definiert:
public class Country
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("value")]
public string Value { get; set; }
}
public class Indicator
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("value")]
public string Value { get; set; }
}
Mein HttpClient
Anruf die Daten korrekt zurückgibt, aber wenn ich versuche, die Daten mit der NewtonSoft JsonConvert.DeserializeObject Funktion deserialisieren:
PageModel pageModel = JsonConvert.DeserializeObject<PageModel>(data);
Es gibt null
.
Irgendwelche Ideen warum?
Danke.
Haben Sie versucht, Teile der Zeichenfolge zu einer Klasse zu einer Zeit für das Debuggen von Deserialisieren? Auf diese Weise können Sie das Problem möglicherweise leichter finden. – RhinoDevel
Es würde aussehen, dass die Felder Wert, Dezimal und Datum vom Typ String, nicht Float, Dezimal und Datum sind. –
@RhinoDevel tat ich. Ich habe den Listen-Teil entfernt, um zu sehen, ob ich die grundlegenden Informationen aus dem PageModel bekommen konnte, aber leider nicht gut, fürchte ich! Gibt immer noch null zurück. – Thierry