std.json - 检查JSONValue是否具有特定字段的任何方法

时间:2014-11-18 01:37:19

标签: json d phobos

假设我有一个未知的JSON,我想检查它是否有类似于此的表单:

{
    "foo": stuff
    "bar": stuff
}

其中stuff是什么 - 整数,对象,等等。如果我做这样的事情:

auto json = parseJSON("{}");
auto foo = json["foo"];

我会得到一个段错误。有没有办法优雅地处理这个(返回null,抛出异常,除了段错误之外的任何)?

1 个答案:

答案 0 :(得分:3)

只需使用D in运算符,就像使用D关联数组一样:

auto foo = "foo" in json ? json["foo"].str : null;

如果您使用的是DMD 2.065或更早版本,则需要json.object运营商使用in

auto foo = "foo" in json.object ? json["foo"].str : null;