std.json—检查JSONValue是否具有特定字段的任何方法
假设我有一个未知的JSON位,我想检查它是否有类似的形式:std.json—检查JSONValue是否具有特定字段的任何方法,json,d,phobos,Json,D,Phobos,假设我有一个未知的JSON位,我想检查它是否有类似的形式: { "foo": stuff "bar": stuff } 其中stuff是任何东西-整数、对象或任何东西。如果我这样做: auto json = parseJSON("{}"); auto foo = json["foo"]; 我会得到一个错误。是否有任何方法可以优雅地处理此问题(返回null、抛出异常、segfault以外的任何内容)?只需使用中的D操作符,就像使用D关联数组一样: auto foo = "foo
{
"foo": stuff
"bar": stuff
}
其中stuff
是任何东西-整数、对象或任何东西。如果我这样做:
auto json = parseJSON("{}");
auto foo = json["foo"];
我会得到一个错误。是否有任何方法可以优雅地处理此问题(返回null、抛出异常、segfault以外的任何内容)?只需使用中的D
操作符,就像使用D关联数组一样:
auto foo = "foo" in json ? json["foo"].str : null;
如果您使用的是DMD2.065或更早版本,则需要为in
操作符使用json.object
:
auto foo = "foo" in json.object ? json["foo"].str : null;
只需在
操作符中使用D,就像使用D关联数组一样:
auto foo = "foo" in json ? json["foo"].str : null;
如果您使用的是DMD2.065或更早版本,则需要为in
操作符使用json.object
:
auto foo = "foo" in json.object ? json["foo"].str : null;
只需在
操作符中使用D,就像使用D关联数组一样:
auto foo = "foo" in json ? json["foo"].str : null;
如果您使用的是DMD2.065或更早版本,则需要为in
操作符使用json.object
:
auto foo = "foo" in json.object ? json["foo"].str : null;
只需在
操作符中使用D,就像使用D关联数组一样:
auto foo = "foo" in json ? json["foo"].str : null;
如果您使用的是DMD2.065或更早版本,则需要为in
操作符使用json.object
:
auto foo = "foo" in json.object ? json["foo"].str : null;
我的编译器不太喜欢这一点-这一行会产生错误in expression的rvalue必须是关联数组,而不是JSONValue
。那么试试json.object中的“foo”。这样就行了,谢谢!请你修改一下你的答案,这样其他人就不会犯我的错误了json.object
仅适用于DMD 2.065或更高版本。我的编译器不太喜欢这一点-这一行会产生错误in expression的右值必须是关联数组,而不是JSONValue
。那么试试json.object
中的“foo”。这样就行了,谢谢!请你修改一下你的答案,这样其他人就不会犯我的错误了json.object
仅适用于DMD 2.065或更高版本。我的编译器不太喜欢这一点-这一行会产生错误in expression的右值必须是关联数组,而不是JSONValue
。那么试试json.object
中的“foo”。这样就行了,谢谢!请你修改一下你的答案,这样其他人就不会犯我的错误了json.object
仅适用于DMD 2.065或更高版本。我的编译器不太喜欢这一点-这一行会产生错误in expression的右值必须是关联数组,而不是JSONValue
。那么试试json.object
中的“foo”。这样就行了,谢谢!请你修改一下你的答案,这样其他人就不会犯我的错误了json.object
仅适用于DMD2.065或更早版本。