Hallo alles, ich versuche, ein JSON mit Newtonsoft Json in C# Klassen zu analysieren. Die JSON ich versuche zu analysieren, wie folgt-Nicht in der Lage, JSON in einer UWP-App zu deserialisieren
[
{
"$type": "Tfl.Api.Presentation.Entities.Line, Tfl.Api.Presentation.Entities",
"id": "bakerloo",
"name": "Bakerloo",
"modeName": "tube",
"disruptions": [ ],
"created": "2016-05-10T15:41:47.997",
"modified": "2016-05-10T15:41:47.997",
"lineStatuses": [
{
"$type": "Tfl.Api.Presentation.Entities.LineStatus, Tfl.Api.Presentation.Entities",
"id": 0,
"statusSeverity": 10,
"statusSeverityDescription": "Good Service",
"created": "0001-01-01T00:00:00",
"validityPeriods": [ ]
}
],
"routeSections": [ ],
"serviceTypes": [
{
"$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
"name": "Regular",
"uri": "/Line/Route?ids=Bakerloo&serviceTypes=Regular"
}
]
},
{
"$type": "Tfl.Api.Presentation.Entities.Line, Tfl.Api.Presentation.Entities",
"id": "central",
"name": "Central",
"modeName": "tube",
"disruptions": [ ],
"created": "2016-05-10T15:41:48.45",
"modified": "2016-05-10T15:41:48.45",
"lineStatuses": [
{
"$type": "Tfl.Api.Presentation.Entities.LineStatus, Tfl.Api.Presentation.Entities",
"id": 0,
"statusSeverity": 10,
"statusSeverityDescription": "Good Service",
"created": "0001-01-01T00:00:00",
"validityPeriods": [ ]
}
],
"routeSections": [ ],
"serviceTypes": [
{
"$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
"name": "Regular",
"uri": "/Line/Route?ids=Central&serviceTypes=Regular"
}
]
}
]
Die JSON über diesen folgenden Code abgerufen wird block-
public static async Task<List<TubeAPI>> GetTubeStatusAsync()
{
string url =
String.Format("https://api.tfl.gov.uk/Line/central,victoria/Status/detail=true&app_id=&app_key=");
HttpClient http = new HttpClient();
var response = await http.GetAsync(url);
var jsonMessage = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<List<TubeAPI>>(jsonMessage);
return result;
}
Die Klassen Ich versuche, in de serialisiert sind als folgt-
public class TubeAPI
{
public RootArray[] Property1 { get; set; }
}
public class RootArray
{
public string type { get; set; }
public string id { get; set; }
public string name { get; set; }
public string modeName { get; set; }
public object[] disruptions { get; set; }
public DateTime created { get; set; }
public DateTime modified { get; set; }
public Linestatus[] lineStatuses { get; set; }
public object[] routeSections { get; set; }
public Servicetype[] serviceTypes { get; set; }
}
public class Linestatus
{
public string type { get; set; }
public int id { get; set; }
public int statusSeverity { get; set; }
public string statusSeverityDescription { get; set; }
public DateTime created { get; set; }
public object[] validityPeriods { get; set; }
}
public class Servicetype
{
public string type { get; set; }
public string name { get; set; }
public string uri { get; set; }
}
ich habe den Debugger bei var result
zu debuggen gesetzt und sehen, ob die Analyse durchgeht, und ich habe Daten in den Klassen. Aber die Klassen sind nicht bevölkert!
Wie Sie sehen können, ist das Feld Property1
null. Ich bin verwirrt, was mache ich hier falsch?
@ Mason arbeitete! post als Antwort bitte. Auch warum es jetzt funktioniert? Ich dachte, wir müssen auf die Rootobject-Klasse verweisen (wie im obersten Feld und in meinem Fall scheint es 'Property1' zu sein) – envyM6