3 #include "rapidjson/filereadstream.h"
4 #include "rapidjson/stringbuffer.h"
8 #define PRETTY_JSON_OUTPUT 0
9 #if PRETTY_JSON_OUTPUT == 1
10 #include "rapidjson/prettywriter.h"
12 #include "rapidjson/writer.h"
186 std::ofstream of(filename);
190 rapidjson::StringBuffer strbuf;
191 #if PRETTY_JSON_OUTPUT == 1
192 rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(strbuf);
194 rapidjson::Writer<rapidjson::StringBuffer> writer(strbuf);
197 of << strbuf.GetString();
241 std::unordered_map<std::string, std::string> retval;
242 rapidjson::Document doc;
243 doc.Parse(json_string.c_str());
246 for (rapidjson::Value::ConstMemberIterator it = doc.GetObject().MemberBegin(); it != doc.GetObject().MemberEnd(); ++it)
248 retval[it->name.GetString()] = it->value.GetString();
256 rapidjson::StringBuffer s;
257 rapidjson::Writer<rapidjson::StringBuffer> writer(s);
258 rapidjson::Document d;
260 for (
auto it = key_values.begin(); it != key_values.end(); ++it)
262 rapidjson::Value k(it->first, d.GetAllocator());
263 rapidjson::Value v(it->second, d.GetAllocator());
264 d.AddMember(k, v, d.GetAllocator());
267 return s.GetString();
JsonWriteArray & operator<<(const std::string &txt)
virtual void finalize(JsonWriteComplex *cplx) override
JsonWriteObject & add_object()
JsonWriteArray & add_array()
std::vector< JsonWriteData * > mChildData
friend class JsonWriteArray
rapidjson::Value mRapidValue
virtual ~JsonWriteComplex()
virtual void finalize(JsonWriteComplex *cplx)=0
friend class JsonWriteObject
JsonWriteData(const std::string &tag, JsonWriteComplex *parent)
JsonWriteComplex * mParent
friend class JsonWriteComplex
JsonWriteData & operator=(const std::string &txt)
virtual rapidjson::Document::AllocatorType & allocator()
bool serialize(const std::string &filename)
rapidjson::Document mRapidDocument
virtual void finalize(JsonWriteComplex *cplx) override
virtual void add_member(rapidjson::Document::ValueType &&name, rapidjson::Document::ValueType &&value, rapidjson::Document::AllocatorType &allocator) override
virtual rapidjson::Document::AllocatorType & allocator() override
JsonWriteData & operator[](const std::string &tag)
friend class JsonWriteData
JsonWriteObject & add_object(const std::string &tag)
virtual void add_member(rapidjson::Document::ValueType &&name, rapidjson::Document::ValueType &&value, rapidjson::Document::AllocatorType &allocator)
virtual void finalize(JsonWriteComplex *cplx) override
JsonWriteArray & add_array(const std::string &tag)
std::unordered_map< std::string, std::string > stringToDictionary(const std::string &json_string)
std::string dictionaryToString(const std::unordered_map< std::string, std::string > &key_values)