1

我需要转换关联数组,将它们放入 Json,但我不知道该怎么做。方法to!string添加不必要的斜线。

int[string] name;
name["Python"] = 5;
Json tags = Json.emptyObject; //Json object
tags["tags"] = name.to!string;
writeln(tags);

{"tags":"[\"Python\":1]"}

我需要得到:{"tags":{"Python":1}}

另外我正在考虑使用tuples,所以如果有任何解决方案,我想看看它。

4

1 回答 1

3

to!string是错误的方法。您不想转换为通用字符串,而是转换为 JSON。

我的第一个想法是tags["tags"] = name;。但是 vibe.dJSON似乎没有opAssign采用通用关联数组的方法。

第二个想法,循环name并将其项目分配给tags["name"]

import vibe.data.json;
import std.stdio;

void main()
{
    int[string] name;
    name["Python"] = 5;
    Json tags = Json.emptyObject; //Json object

    tags["tags"] = Json.emptyObject;
    foreach (k, v; name) tags["tags"][k] = v;

    writeln(tags);
}
于 2015-09-20T16:43:19.577 回答