使用 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("---");
}
在你的代码中,index
必须是整数类型 - 这几乎就是错误消息所说的。JSON 数组始终是纯数组,关联的数组称为 JSON 对象。
例:
foreach (size_t index, Json value; configuration["array1"]) {}
或者干脆
foreach (index, value; configuration["array1"]) {} // type inference
更新:将int
更改为size_t
以匹配实际操作应用签名
出于某种原因,使用乌龙有效。我猜这是一个错误?
foreach(ulong index, Json pluginToLoad; configuration["PluginsToLoad"])