2017-02-16 96 views
0

我檢索用戶的字段從Facebook,像這樣:檢查JSON響應字段爲空

+1

您需要檢查是否'myInfo.education [0] .concentration'存在,然後嘗試通過索引訪問數據。 – CBroe

+0

看起來像是這個問題!謝謝! – crystyxn

回答

3

這將是一個很好用的地方null conditional operator

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

如果education[0]concentration[0]爲null,它會跳過鏈條的其餘部分。

+0

看來問題出在我試圖訪問不存在的東西的第一個索引(education [0] .concentration [0]) – crystyxn

0

我想你在找什麼是

(myInfo.education [0] ?.濃度[0] ?.名字!= NULL)

,但我相信它只會如果物業工作實際上是在對象上,即json部分不會丟失。如果教育不在對象之內,我認爲這仍會爆炸。

我的意思是

{ 「ID」: 「757111564344608」, 「教育」:[], 「圖片報」:{

會的工作不錯,但

{ 「id」:「757111564344608」, 「picture」:{

會拋出異常。只有這樣,才能可能採取進一步的

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 
      } 
     } 

中的GetValue行可能需要改變,你可能需要通過教育的屬性迭代找到「類型」