如何在序列化时包含向量2(jsoncpp)

时间:2014-06-10 16:28:29

标签: c++ json vector

我想用jsoncpp将一个Books向量转换为json格式。 使用这里的模型和地图How to insert a map or vector to generate a json string (jsoncpp)我没有找到以json格式获取字符串的方法

struct Book {
std::string book;     
std::string source;  
std::string brdsId;
}


std::vector<Book> book;
book.push_back(Book("EURO_SWAPS", "SUMMIT", "1233345"));
book.push_back(Book("US_SWAPS", "SUMMIT", "987654"))

Json::Value root;
root["root"] = "root";

Json::Value myVect;
for(std::vector<Book>::iterator it = book.begin(); it != book.end(); it++) {
myVect[std::to_string(*it)] ; // does not work
}

root["Books"] = myVect;
Json::StyledWriter writer;
string output = writer.write( root );

我应该放一个双循环&#34; for&#34;,一次得到这本书,第二次抓住它的contenu? 非常感谢你

1 个答案:

答案 0 :(得分:4)

最后我发现了,这就是解决方案:

for(std::vector<Book>::iterator it = book.begin(); it != book.end(); it++) {
    Json::Value jsonVect;
    jsonVect.append(it->book);
    jsonVect.append(it->source);
    jsonVect.append(it->brdsId);
    root["testvect"].append (jsonVect);
}