查找隐藏在JSON中的属性

本文关键字:属性 JSON 隐藏 查找 | 更新日期: 2023-09-27 18:07:49

在解析JSON字符串时,我想测试一个属性是否存在,以便在JSON属性没有进入字符串的情况下应用程序不会抛出"null引用"错误。

我要找的属性隐藏在JSON

dateofbirth = (string) o["Person"]["Demographics"]["Birthdate"]["Date"];

当我试图访问属性

var JSONBirthDate = o.Property("Birthdate");

它总是返回"null" -我已经搜索过了,找不到在JSON层次结构中抓取属性的语法。

一旦我可以这样做,我猜我就像这样检查:

if(property != null) {
    // do something
}

并提供默认值

查找隐藏在JSON中的属性

您可以使用SelectToken:

var dateofbirth = (string)o.SelectToken("Person.Demographics.Birthdate.Date");

支持数组索引和属性选择。例如,如果你有一组人而不是一个人,你可以这样做:

var dateofbirth = (string)o.SelectToken("People[0].Demographics.Birthdate.Date");

它还支持JSONPath查询语法,包括通配符和递归下降操作符。有关完整语法,请参阅此处。