如何在Vibe.D中迭代JSON数组?

时间:2014-02-19 13:09:33

标签: d vibed

使用Vibe.D库迭代Json数组的正确方法是什么?

我试过这个,但它给了我编译错误:

foreach(string index, Json value; configuration["array1"]) {}

这是错误:

Error: opApply() function for Json must return an int

完整代码:

foreach(int index, Json pluginToLoad; configuration["PluginsToLoad"]) {
    import std.conv;
    logInfo(to!string(index));
    logInfo(pluginToLoad.get!string);
    logInfo("---");
}

2 个答案:

答案 0 :(得分:3)

在您的代码index中必须是整数类型 - 这几乎是错误消息所说的。 JSON数组总是普通数组,关联数组称为JSON对象。

示例:

foreach (size_t index, Json value; configuration["array1"]) {}

或只是

foreach (index, value; configuration["array1"]) {} // type inference

更新:将int更改为size_t以匹配实际的opApply签名

答案 1 :(得分:0)

出于某种原因,使用ulong作品。我猜这是一个错误?

foreach(ulong index, Json pluginToLoad; configuration["PluginsToLoad"])