implemented pretty printing (issue #13)
- to_string() method is now called dump() - syntax borrowed from Python’s json.dumps()
This commit is contained in:
parent
08456b8ff0
commit
bd9f49efb9
4 changed files with 126 additions and 28 deletions
|
@ -17,7 +17,7 @@ TEST_CASE("array")
|
|||
const json j_const (j);
|
||||
|
||||
// string representation of default value
|
||||
CHECK(j.to_string() == "[]");
|
||||
CHECK(j.dump() == "[]");
|
||||
|
||||
// iterators
|
||||
CHECK(j.begin() != j.end());
|
||||
|
@ -305,7 +305,7 @@ TEST_CASE("object")
|
|||
const json j_const = j;
|
||||
|
||||
// string representation of default value
|
||||
CHECK(j.to_string() == "{}");
|
||||
CHECK(j.dump() == "{}");
|
||||
|
||||
// iterators
|
||||
CHECK(j.begin() != j.end());
|
||||
|
@ -685,7 +685,7 @@ TEST_CASE("null")
|
|||
CHECK(j.type() == json::value_type::null);
|
||||
|
||||
// string representation of default value
|
||||
CHECK(j.to_string() == "null");
|
||||
CHECK(j.dump() == "null");
|
||||
|
||||
// iterators
|
||||
CHECK(j.begin() != j.end());
|
||||
|
@ -755,7 +755,7 @@ TEST_CASE("string")
|
|||
CHECK(j.cbegin() != j.cend());
|
||||
|
||||
// string representation of default value
|
||||
CHECK(j.to_string() == "\"\"");
|
||||
CHECK(j.dump() == "\"\"");
|
||||
|
||||
// container members
|
||||
CHECK(j.size() == 1);
|
||||
|
@ -837,7 +837,7 @@ TEST_CASE("boolean")
|
|||
CHECK(j.cbegin() != j.cend());
|
||||
|
||||
// string representation of default value
|
||||
CHECK(j.to_string() == "false");
|
||||
CHECK(j.dump() == "false");
|
||||
|
||||
// container members
|
||||
CHECK(j.size() == 1);
|
||||
|
@ -916,7 +916,7 @@ TEST_CASE("number (int)")
|
|||
CHECK(j.cbegin() != j.cend());
|
||||
|
||||
// string representation of default value
|
||||
CHECK(j.to_string() == "0");
|
||||
CHECK(j.dump() == "0");
|
||||
|
||||
// container members
|
||||
CHECK(j.size() == 1);
|
||||
|
@ -1002,7 +1002,7 @@ TEST_CASE("number (float)")
|
|||
CHECK(j.cbegin() != j.cend());
|
||||
|
||||
// string representation of default value
|
||||
CHECK(j.to_string() == "0.000000");
|
||||
CHECK(j.dump() == "0.000000");
|
||||
|
||||
// container members
|
||||
CHECK(j.size() == 1);
|
||||
|
@ -1786,6 +1786,18 @@ TEST_CASE("Parser")
|
|||
CHECK(j22 == j23);
|
||||
}
|
||||
|
||||
SECTION("serialization")
|
||||
{
|
||||
auto j23 = "{ \"a\": null, \"b\": true, \"c\": [1,2,3], \"d\": {\"a\": 0} }"_json;
|
||||
|
||||
CHECK(j23.dump() == "{\"a\": null, \"b\": true, \"c\": [1, 2, 3], \"d\": {\"a\": 0}}");
|
||||
CHECK(j23.dump(-1) == "{\"a\": null, \"b\": true, \"c\": [1, 2, 3], \"d\": {\"a\": 0}}");
|
||||
CHECK(j23.dump(0) ==
|
||||
"{\n\"a\": null,\n\"b\": true,\n\"c\": [\n1,\n2,\n3\n],\n\"d\": {\n\"a\": 0\n}\n}");
|
||||
CHECK(j23.dump(4) ==
|
||||
"{\n \"a\": null,\n \"b\": true,\n \"c\": [\n 1,\n 2,\n 3\n ],\n \"d\": {\n \"a\": 0\n }\n}");
|
||||
}
|
||||
|
||||
SECTION("Errors")
|
||||
{
|
||||
CHECK_THROWS_AS(json::parse(""), std::invalid_argument);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue