*.json
ファイルを読み込んで、出力をstd::string
にするにはどうすればよいですか?jsonファイルをrapidjsonで読み込んでstd :: stringに出力するには?
私はこのサンプルを持っていますが、null
はいつもstd::string
になります。
#include <rapidjson/document.h>
#include <rapidjson/istreamwrapper.h>
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
#include <rapidjson/ostreamwrapper.h>
#include <fstream>
#include <iostream>
using namespace rapidjson;
using namespace std;
void main()
{
ifstream ifs("input.json");
IStreamWrapper isw(ifs);
Document d;
d.ParseStream(isw);
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
d.Accept(writer);
std::string jsonStr(buffer.GetString());
if(jsonStr == "null")
std::cout << "is null..." << std::endl; //<--always here!
else
{
std::cout << jsonStr.c_str() << std::endl;
d["ip"] = "123456789";
ofstream ofs("output.json");
OStreamWrapper osw(ofs);
Writer<OStreamWrapper> writer2(osw);
d.Accept(writer2);
}
}
これは私のJSONファイルです:
{
"ip" : "192.168.0.100",
"angle x": 20,
"angle y": 0,
"angle z": 0
}
?ファイル全体を 'string'に読み込みたいのであれば、rapidjsonは必要ありません。 – Heavy
ファイルから読み込み、jsonでいくつかのフィールドを変更し、別のファイルに書き戻したい。 – waas1919
@ waas1919:あなたのファイル 'input.json'には何が入っていますか?最小限の有効なJSONをここに投稿してください。あなたの解析が[HasParseError()](http://rapidjson.org/classrapidjson_1_1_generic_document.html#a7607bb42b51547e44bfd4cab35d8f20e)と[GetParseError()](http://rapidjson.org/classrapidjson_1_1_generic_document.html#ab94c280c079a6837a24951cb4d8f337b)で成功していることを検証しました? – Azeem