10

私は jsoncpp を使用していますが、ライターの 1 つを使用して書き込まれたときに json メッセージがどのようにフォーマットされるかに問題があります。

例えば:

root["name"] = "monkey";
std::cout << writer.write(root) << "\n";

このようにフォーマットされたものをくれます

{
    "name" : "monkey"
}

私が実際に欲しい間:

{"name":"monkey"}

私はドキュメントを見てきましたが、言及がありますがsetIndentLength()、ソースファイルには表示されないため、非推奨か何かである可能性があります。

とにかく、これを行う方法を知っている人はいますか?

4

3 に答える 3

5

Jsoncpp バージョン 1.1 を使用する場合は、またはJson::FastWriterの代わりに使用できます。Json::StyledWriterJson::Writer

JSON ドキュメントは 1 行で記述されます。これは「人間による」消費を意図したものではありませんが、帯域幅が制限されている RPC などの機能をサポートするのに役立つ場合があります。

于 2011-09-26T15:54:21.033 に答える
4

FastWriter、、、およびStyledWriter非推奨です。を使用して、わずかに異なる API でを作成します。次のように使用します。StyledStreamWriterWriterStreamWriterBuilderStreamWriter

Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::unique_ptr<Json::StreamWriter> writer(builder.newStreamWriter());
writer->write(root, &std::cout);
于 2015-02-15T00:46:28.430 に答える