2012-01-31 24 views
2

我想用libJSON的JSONNode製作一個數組。我試過以下,但它不工作:如何使用libjson創建數組?

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」的標籤,但是,這並不存在,它似乎)

回答

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,你可以試試看。

+0

非常感謝。我看到了我的問題的所有答案都很明顯的模式。 :( – Neko 2012-01-31 21:14:20

+0

你認爲現在最好的C++ json是什麼? – 2013-07-27 07:01:05