From 50423d8c729ee133035e3bb1e244bfbd1bdc0ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot?= Date: Tue, 26 Sep 2017 20:30:14 +0200 Subject: Update JsonCPP to 1.8.3 (#6466) * Update JsonCPP to 1.8.3 * Fix deprecated functions Json::FastWriter, Json::StyledWriter and Json::Reader are marked deprecated since 1.1 and are deprecated in 0.8 but not shown at compilation time. Use new methods to serialize/deserialize --- src/script/lua_api/l_util.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/script/lua_api') diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp index dffbc66d1..5128e79e6 100644 --- a/src/script/lua_api/l_util.cpp +++ b/src/script/lua_api/l_util.cpp @@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "cpp_api/s_security.h" #include "porting.h" +#include "convert_json.h" #include "debug.h" #include "log.h" #include "tool.h" @@ -95,12 +96,14 @@ int ModApiUtil::l_parse_json(lua_State *L) Json::Value root; { - Json::Reader reader; std::istringstream stream(jsonstr); - if (!reader.parse(stream, root)) { - errorstream << "Failed to parse json data " - << reader.getFormattedErrorMessages(); + Json::CharReaderBuilder builder; + builder.settings_["collectComments"] = false; + std::string errs; + + if (!Json::parseFromStream(builder, stream, &root, &errs)) { + errorstream << "Failed to parse json data " << errs << std::endl; size_t jlen = strlen(jsonstr); if (jlen > 100) { errorstream << "Data (" << jlen @@ -145,11 +148,9 @@ int ModApiUtil::l_write_json(lua_State *L) std::string out; if (styled) { - Json::StyledWriter writer; - out = writer.write(root); + out = root.toStyledString(); } else { - Json::FastWriter writer; - out = writer.write(root); + out = fastWriteJson(root); } lua_pushlstring(L, out.c_str(), out.size()); return 1; -- cgit v1.2.3