How to get JsonCPP values as strings?

Lalith picture Lalith · Jan 13, 2012 · Viewed 9.8k times · Source

I am parsing json data using JsonCpp. I don't really need to understand the data, i just need to print out some properties and their values out. It somehow is hard to do. First I need to know what type the value is and then get the value and then convert it to string again! There is a styled writer but I don't want to use it as it appends some CRLF at the end.

I do something like this

CJsonHelper::getUInt(Json::Value &root, std::string key){
    return root.get(key, 0-1).isInt() ? root.get(key, 0-1).asUInt() : 0-1;
}

Could I just write a single function to get all the properties with just that function which doesn't really care about the types etc?

Answer

cdunn2001 picture cdunn2001 · Feb 17, 2015

The project has moved to GitHub.

To avoid all linefeeds, use a StreamWriterBuilder:

Json::Value whatever = ...;
Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::string out = Json::writeString(builder, whatever);