在解析JSON字符串时,我想测试一个属性是否存在,以便在JSON属性没有进入字符串的情况下应用程序不会抛出"null引用"错误。
我要找的属性隐藏在JSON
中dateofbirth = (string) o["Person"]["Demographics"]["Birthdate"]["Date"];
当我试图访问属性
时var JSONBirthDate = o.Property("Birthdate");
它总是返回"null" -我已经搜索过了,找不到在JSON层次结构中抓取属性的语法。
一旦我可以这样做,我猜我就像这样检查:
if(property != null) {
// do something
}
并提供默认值
您可以使用SelectToken
:
var dateofbirth = (string)o.SelectToken("Person.Demographics.Birthdate.Date");
支持数组索引和属性选择。例如,如果你有一组人而不是一个人,你可以这样做:
var dateofbirth = (string)o.SelectToken("People[0].Demographics.Birthdate.Date");
它还支持JSONPath查询语法,包括通配符和递归下降操作符。有关完整语法,请参阅此处。