diff --git a/include/chaiscript/utility/json.hpp b/include/chaiscript/utility/json.hpp index d7c632c6..c6988d54 100644 --- a/include/chaiscript/utility/json.hpp +++ b/include/chaiscript/utility/json.hpp @@ -392,7 +392,7 @@ class JSON bool skip = true; for( auto &p : *internal.Map ) { if( !skip ) { s += ",\n"; } - s += ( pad + "\"" + p.first + "\" : " + p.second.dump( depth + 1, tab ) ); + s += ( pad + "\"" + json_escape(p.first) + "\" : " + p.second.dump( depth + 1, tab ) ); skip = false; } s += ( "\n" + pad.erase( 0, 2 ) + "}" ) ; diff --git a/include/chaiscript/utility/json_wrap.hpp b/include/chaiscript/utility/json_wrap.hpp index 05b9e404..656bf21d 100644 --- a/include/chaiscript/utility/json_wrap.hpp +++ b/include/chaiscript/utility/json_wrap.hpp @@ -110,7 +110,7 @@ namespace chaiscript { return json::JSON(bn.get_as()); } else { - return json::JSON(bn.get_as()); + return json::JSON(bn.get_as()); } } catch (const chaiscript::detail::exception::bad_any_cast &) { // not a number diff --git a/unittests/json_15.chai b/unittests/json_15.chai index 7e8ad652..e15ace05 100644 --- a/unittests/json_15.chai +++ b/unittests/json_15.chai @@ -16,3 +16,4 @@ assert_equal(to_json(from_json("null")), "null") assert_equal(from_json(to_json(["a": 5, "b": "stuff"])), ["a": 5, "b": "stuff"]) auto x = [3.5, true, false, "test", [], Vector(), Map()] assert_equal(from_json(to_json(x)), x) +assert_equal(from_json(to_json(["aa\\zz":"aa\\zz"])), ["aa\\zz": "aa\\zz"]) diff --git a/unittests/json_3.chai b/unittests/json_3.chai index 11ce7dcb..1308c492 100644 --- a/unittests/json_3.chai +++ b/unittests/json_3.chai @@ -1,2 +1,3 @@ assert_equal(from_json("100"), 100) assert_equal(from_json("-100"), -100) +assert_equal(to_json(4294967295), "4294967295")