diff options
Diffstat (limited to 'src/JsonUtils.cpp')
-rw-r--r-- | src/JsonUtils.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/JsonUtils.cpp b/src/JsonUtils.cpp new file mode 100644 index 000000000..6c70e70d3 --- /dev/null +++ b/src/JsonUtils.cpp @@ -0,0 +1,43 @@ +#include "Globals.h" + +#include "JsonUtils.h" +#include "json/json.h" + +#include <sstream> + + +namespace JsonUtils +{ + +AString WriteFastString(const Json::Value & a_Root) +{ + Json::StreamWriterBuilder Builder; + Builder["commentStyle"] = "None"; + Builder["indentation"] = ""; + return Json::writeString(Builder, a_Root); +} + + + + + +AString WriteStyledString(const Json::Value & a_Root) +{ + Json::StreamWriterBuilder Builder; + return Json::writeString(Builder, a_Root); +} + + + + + +bool ParseString(const AString & a_JsonStr, Json::Value & a_Root, AString * a_ErrorMsg) +{ + Json::CharReaderBuilder Builder; + std::unique_ptr<Json::CharReader> Reader(Builder.newCharReader()); + + const char * Doc = a_JsonStr.data(); + return Reader->parse(Doc, Doc + a_JsonStr.size(), &a_Root, a_ErrorMsg); +} + +} // namespace JsonUtils |