JSONCPPにはライターがありますが、パーサーから情報を取得して文字列またはストリームに出力するだけです。新しいオブジェクト、配列、値、文字列などを変更または作成し、ファイルに書き込むにはどうすればよいですか?JSONCPPファイルへの書き込み
答えて
AFAICTでは、すべてのJSONデータ型に対応したJson :: Value型のオブジェクトを作成し、その結果をJson :: Writer(その派生型の1つ、具体的には)に渡すか、単純にストリームに。
例えば:ファイルに3つの整数の配列を書き込むために:
Json::Value vec(Json::arrayValue);
vec.append(Json::Value(1));
vec.append(Json::Value(2));
vec.append(Json::Value(3));
std::cout << vec;
まず、あなたが希望JSON::Value
を作成する必要があります。すべてのコンストラクタ(first)を見てください。必要な階層を作成するには、append
および演算子[] overloadsを参照してください。オブジェクトの配列indicesとstring keysの両方にオーバーロードがあります。
JSON値を書き戻す方法の1つは、StyledStreamWriter::write
とofstream
です。
これを書き込む方法については、cegprakashの回答を参照してください。
#include<json/writer.h>
コード:
Json::Value event;
Json::Value vec(Json::arrayValue);
vec.append(Json::Value(1));
vec.append(Json::Value(2));
vec.append(Json::Value(3));
event["competitors"]["home"]["name"] = "Liverpool";
event["competitors"]["away"]["code"] = 89223;
event["competitors"]["away"]["name"] = "Aston Villa";
event["competitors"]["away"]["code"]=vec;
std::cout << event << std::endl;
出力:
{
"competitors" :
{
"away" :
{
"code" : [ 1, 2, 3 ],
"name" : "Aston Villa"
},
"home" :
{
"name" : "Liverpool"
}
}
}
これは本当にいいね。 .appendメソッドでintの代わりにクラスを追加するのはどうですか? – malber
#include <json.h>
#include <iostream>
#include <fstream>
void main()
{
std::ofstream file_id;
op_file_id.open("file.txt");
Json::Value value_obj;
//populate 'value_obj' with the objects, arrays etc.
Json::StyledWriter styledWriter;
file_id << styledWriter.write(value_obj);
file_id.close();
}
ポストコードだけでなく、答えを説明すれば分かりやすいでしょう。 – SuperBiasedMan
- 1. 書き込みJSONデータincremently jsoncpp
- 2. ファイルへの書き込み
- 3. ファイルへの書き込み
- 4. ファイルへの書き込み
- 5. テキストのファイルへの書き込みと書き込みR
- 6. ファイルへの書き込みと書き込み
- 7. Python:ファイルへの書き込みと書き込みエラー
- 8. ファイルへの読み書きの高速読み込みと書き込み
- 9. JavaのXMLファイルへの書き込み
- 10. Qtでのファイルへの書き込み
- 11. .txtファイルへのファイルパスの書き込み
- 12. ファイルへのダブルリストの書き込み
- 13. VBSファイルへのコードブロックの書き込み
- 14. powershellのmachine.configファイルへの書き込み
- 15. 複数のファイルへの書き込み
- 16. Pythonのhdfsファイルへの書き込み
- 17. ファイルへのAndroidの書き込み
- 18. C++でのファイルへの書き込み
- 19. ファイルへの書き込みと入力
- 20. slf4j + log4j2ファイルへの書き込み
- 21. C++ byte const *ファイルへの書き込み
- 22. Androidストレージへの書き込みファイル
- 23. VBAアクセスPS1ファイルへの書き込み
- 24. エラーインストール:ファイルへの書き込みエラー:stimulsoft.report.helper.dll
- 25. MAP_PRIVATE mmapedファイルへの書き込み
- 26. zipファイルへの同時書き込み
- 27. 非 ".txt"ファイルへの書き込みPython
- 28. C#ファイルへの書き込み
- 29. C#Excelファイルへの書き込み
- 30. Androidファイルへの書き込み
しかし、私は.jsonファイルにそれを書きたいです。 – Yelnats
そして、 'cout'の代わりに' ofstream'を使います。 –
Yelnats、std :: coutの代わりにファイルにパイプします。 – TimZaman