summaryrefslogtreecommitdiffstats
path: root/src/JsonUtils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JsonUtils.cpp')
-rw-r--r--src/JsonUtils.cpp43
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