2017-02-16 5 views

Antwort

3

Dies wäre ein guter Ort, um das verwenden null conditional operator:

if (myInfo.education[0]?.concentration[0]?.name != null) 

Wenn education[0] oder concentration[0] null ist, es überspringe den Rest der Kette.

+0

Es scheint das Problem war ich habe versucht, den ersten Index von etwas, das nicht existiert (Bildung [0] .concentration [0]) – crystyxn

0

Ich denke, was Sie suchen ist

(myInfo.education [0] ?. Konzentration [0] ?. Name! = Null)

aber ich glaube, dass es nur dann, wenn die Eigenschaft funktioniert ist eigentlich auf dem Objekt dh der JSON-Abschnitt fehlt nicht. Wenn Bildung überhaupt nicht auf dem Objekt ist, wird das immer noch in die Luft gehen, denke ich.

was ich meine ist

{ "id": "757111564344608", "Bildung": [], "Bild": {

wäre ok arbeiten, aber

{ "ID": "757111564344608", "Bild": {

würde eine Ausnahme auslösen. Der einzige Weg, vielleicht nehmen sie weiter ist

public dynamic myInfo; 
    myInfo = fb.Get("/me?........... 
    Type type = myInfo.GetType(); 
    foreach (var pi in type.GetProperties()) 
     { 
     if (pi.Name.ToLower() == "education") 
      { 
      var val = pi.GetValue(myInfo).type; 
      //do stuff to get child elements based on value 
      } 
     } 

die GetValue Linie geändert werden könnte müssen, müssen Sie möglicherweise durch Eigenschaften der Ausbildung durchlaufen zu finden „type“

Verwandte Themen