8

JsonCppを使用して json データを解析しています。データを理解する必要はありません。いくつかのプロパティとその値を出力する必要があるだけです。なんとなくやりにくい。まず、値の型を知り、値を取得してから、再度文字列に変換する必要があります! スタイル付きライターがありますが、最後に CRLF が追加されるため、使用したくありません。

私はこのようなことをします

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

タイプなどをあまり気にしない関数だけですべてのプロパティを取得する単一の関数を作成できますか?

4

2 に答える 2

10

プロジェクトはGitHubに移動しました。

すべての改行を避けるには、StreamWriterBuilderを使用します。

Json::Value whatever = ...;
Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::string out = Json::writeString(builder, whatever);
于 2015-02-17T00:01:45.653 に答える
1

やりたいことが何でもできる独自のライターを簡単に作成できます。のコードを見てくださいStyledWriter。あなたが好きではないCRLFはから来StyledWriter::Writeます。これらの CRLF を持たない独自のライター クラスを作成できます。

ライブラリを変更してもかまわない場合は、次のような関数writeValueが非公開ではなく保護されるようにライターを変更してください。StyledWriter次に、別の関数を使用して独自のクラスを派生させWrite、さまざまなwrite*関数を使用して変換の詳細を行うことができます。

于 2012-01-13T02:04:40.647 に答える