读取可能未定义的JSON对象属性

时间:2016-02-13 01:11:33

标签: c# html json.net capture

好的,我正在编写一个从网站html源代码中收集数据的Windows表单应用程序。

它需要抓住此人的性别,但有些人没有性别设置,因此性别不会在源代码中显示,因此它会给我一个错误。

我想要做的是,如果源代码不包含"性别"然后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声明我可以在那里使用所以它不会给我一个错误应用程序,如果源代码不包含"性别"。

非常感谢。

1 个答案:

答案 0 :(得分: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
}