summaryrefslogtreecommitdiffstats
path: root/src/JsonUtils.cpp
diff options
context:
space:
mode:
authorpeterbell10 <peterbell10@live.co.uk>2020-05-09 16:51:15 +0200
committerGitHub <noreply@github.com>2020-05-09 16:51:15 +0200
commite6634ed26c50e99f6ccd285235fe477cb4168b06 (patch)
treeb533a69db545835a886bcd8c5b05609b4c830d11 /src/JsonUtils.cpp
parentUpgrade to C++17 [CI] (#4716) (diff)
downloadcuberite-e6634ed26c50e99f6ccd285235fe477cb4168b06.tar
cuberite-e6634ed26c50e99f6ccd285235fe477cb4168b06.tar.gz
cuberite-e6634ed26c50e99f6ccd285235fe477cb4168b06.tar.bz2
cuberite-e6634ed26c50e99f6ccd285235fe477cb4168b06.tar.lz
cuberite-e6634ed26c50e99f6ccd285235fe477cb4168b06.tar.xz
cuberite-e6634ed26c50e99f6ccd285235fe477cb4168b06.tar.zst
cuberite-e6634ed26c50e99f6ccd285235fe477cb4168b06.zip
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