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

Read JSON object properties that may not be defined

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

它需要抓取人的性别,但有些人没有设置性别,所以源代码中没有显示性别,所以它抛出了一个错误。

我想做的是如果源代码不包含 "gender" 那么 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 语句我可以在那里使用,这样如果源代码确实存在,它不会在我的应用程序中抛出错误不包含 "gender".

非常感谢。

您可以按如下方式测试 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
}