У меня есть значение jsoncpp , которое я хочу сериализовать.Самый простой способ выглядит следующим образом:
Json::Value val; // population is left as an exercise for the reader
std::string str = Json::FastWriter().write(val);
Проблема в том, что FastWriter
устарела, и я не могу терпеть предупреждения компилятора.Согласно менее интуитивной документации, я должен использовать StreamWriterBuilder
вместо:
Json::StreamWriterBuilder builder;
builder["commentStyle"] = "None";
builder["indentation"] = "";
std::unique_ptr<Json::StreamWriter> writer( builder.newStreamWriter() );
std::ostringstream os;
writer->write(val, &os);
std::string str = os.str();
Конечно, это не может быть "лучше"?Я предполагаю, что ошибка лежит на мне, и есть простой способ выполнить минимальную сериализацию (без посторонних пробелов).
Этот показывает немного более компактную форму (хотя кажется, что простооберните вышеупомянутое в вызов функции).
Json::StreamWriterBuilder builder;
builder["indentation"] = ""; // assume default for comments is None
std::string str = Json::writeString(builder, val);
Это правильный путь сейчас?