2016-10-03 3 views
0

Ich habe einen Webservice, der eine Json in diesem Format zurück:Xamarin C# deserialisieren Json enthält verschachteltes Objekt

[{ 
    "Route0": { 
     "RouteID": "AAA", 
     "RouteDescription": "", 
     "ReturnCode": "0", 
     "ReturnError": "" 
    } 
}, { 
    "Route1": { 
     "RouteID": "AABCLO", 
     "RouteDescription": "Antoine Abdo Bachaalani Close", 
     "ReturnCode": "0", 
     "ReturnError": "" 
    } 
}] 

Ich brauche es deserialisieren: Ich habe 2 Klasse:

public class PullRouteDetailsObjectChild 
    { 
     public string RouteID { get; set; } 
     public string RouteDescription { get; set; } 
     public string ReturnCode { get; set; } 
     public string ReturnError { get; set; } 
    } 

    public class PullRouteDetailsObject 
    { 
     public PullRouteDetailsObjectChild Route { get; set; } 
    } 

und ich ist mit diesem Code deserialisieren:

List<PullRouteDetailsObject> jsonRoutes =  
JsonConvert.DeserializeObject<List<PullRouteDetailsObject>>(jsonresult); 

ich bin in der Lage, eine Liste von 2 PullRouteDetailsO zu erhalten bject ist korrekt, aber das untergeordnete Objekt ist immer null. Ich bin sicher, dass ich etwas vermisse, aber nicht finden kann. Ich muss auf Kindobjekt zugreifen Vielen Dank für Ihre Hilfe.

Antwort

1

Sie müssen dies stattdessen verwenden:

var jsonRoutes = JsonConvert.DeserializeObject<List<Dictionary<string, PullRouteDetailsObject>>>(jsonresult); 

Wie Sie eine Liste von Objekten mit einer Eigenschaft bekommen, die Sie enthält 'PullRouteDetailsObject' (Route0, Route1).

+0

ok und wie mit dieser Methode auf das untergeordnete Objekt zuzugreifen? –

+0

@chahid 'jsonRoutes.First (r => r.ContainsKey (" Route1 ")) [" Route1 "]' (für das, was es wert ist, glaube ich nicht, dass die Struktur dieses jsons jedem hilft, egal ob Client oder Server) –

Verwandte Themen