1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

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
This commit is contained in:
Loïc Blot 2017-09-26 20:30:14 +02:00 committed by GitHub
parent f7e57a0d20
commit 50423d8c72
10 changed files with 549 additions and 103 deletions

View file

@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <json/json.h>
#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;