读取 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
}
好的,我正在编写一个 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
}