如何使用libjson创建数组?

时间:2012-01-31 20:47:37

标签: c++ arrays json libjson

我想用libJSON的JSONNode创建一个数组。我尝试了以下内容,但它不起作用:

JSONNode array;
JSONNode foo("word", "foo");
JSONNode bar("word", "bar");
array.push_back(foo);
array.push_back(bar);

这导致:

{ 
    "word": "foo", 
    "word": "bar"
}

我想要的是:

[
    {"word": "foo"},
    {"word": "bar"}
]

我很清楚,我没有说明我想要一个数组。问题是,我搜索了图书馆并搜索了一下,但我发现无法做到这一点。任何人都可以帮我解决这个问题吗?

(旁注:我想添加一个“libjson”标签,但这似乎还不存在,似乎。)

1 个答案:

答案 0 :(得分:7)

您需要指定您正在创建阵列和复杂节点:

JSONNode array(JSON_ARRAY);
JSONNode foo(JSON_NODE);
JSONNode bar(JSON_NODE);

foo.push_back(JSONNode("word", "foo"));
bar.push_back(JSONNode("word", "bar"));

array.push_back(foo);
array.push_back(bar);

有关基本示例,请参阅libjson-VERSION.zip中的“使用入门”文档。

旁注:我个人发现libjson很烦人,并且文档严重缺乏。在我自己的项目中,我使用JsonCpp或(更频繁地)Jansson作为我的C / C ++ JSON API。如果你没有被锁定到libjson,你可以尝试一下。