2016-02-13 108 views
-1

好吧,我正在編寫一個窗體應用程序,它從網站html源代碼收集數據。閱讀可能未定義的JSON對象屬性

它需要抓住人的性別,但有些人沒有設置性別,所以性別不會顯示在源代碼中,所以它會拋出一個錯誤。

我想要做的是,如果源代碼不包含「性別」,那麼Console.Write = "N/A"

這裏是我目前用來捕獲性別數據的代碼。

JObject ob = JObject.Parse(html); 
ob = JObject.Parse(html); 
Console.WriteLine(html); 
gt.gender = (string)ob["data"]["user"]["gender"]; 
Console.WriteLine(gt.gender); 

我仍然是一種新的這個,所以我想知道是否有某種if或else語句,我可以用有那麼它不會把我的錯誤在我的應用程序,如果源代碼不包含「性別」。

非常感謝。

+0

哪個控制檯? 「我正在寫一個Windows窗體應用程序」 – spender

+0

Console.WriteLine只是將數據添加到列表視圖中。這是一個Windows窗體應用程序。 – JohnDueDueDue

+0

閱讀[這個答案](http://stackoverflow.com/a/35329271/14357)我給了另一個問題。一切都會清楚。 – spender

回答

1

可以測試在JObject屬性如下:

JObject item = //your JObject; 
var hasFooProp = item.Properties().Any(p => p.Name == "foo"); 
if(hasFooProp) 
{ 
    //item["foo"] is safe to read 
} 
else 
{ 
    //set your N/A 
} 
相關問題