使用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("---");
}
答案 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"])