2

作为我正在处理的程序的一部分,我正在查看std.json库,我对如何从JSONValue类型被推断为 或 的 sTRUEFALSE获取数据感到有些困惑NULL

例如,如果我解析以下 JSON:

{
    "foo" : "bar"
}

然后,我可以通过执行以下操作来提取属性中保存的字符串"foo"

auto json = parseJSON("/path/to/json/example.json");
auto foo_attr = json["foo"].str;

但假设我有这样的 JSON:

{
    "foo" : false,
    "bar" : true,
    "baz" : null
}

我需要做什么才能获得 和 的属性"foo"值?"bar""baz"

4

1 回答 1

3

查看变量的类型。

auto json = parseJSON("/path/to/json/example.json");
bool foo = json["foo"].type == JSON_TYPE.TRUE;
bool bar = json["bar"].type == JSON_TYPE.TRUE;
bool bazIsNull = json["baz"].type == JSON_TYPE.NULL;

当然,如果您期望值可能具有其他类型,则需要进行额外检查。

于 2014-11-18T01:02:53.723 回答