0

假设我有一个未知的 JSON,我想检查它是否有类似这样的形式:

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

任何东西在哪里stuff——整数、对象等等。如果我做这样的事情:

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

我会得到一个段错误。有什么方法可以优雅地处理这个问题(返回 null、抛出异常、除了段错误之外的任何东西)?

4

1 回答 1

3

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

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

如果您使用的是 DMD 2.065 或更早版本,则需要使用运算json.objectin

auto foo = "foo" in json.object ? json["foo"].str : null;
于 2014-11-18T01:42:11.017 回答