Skip to content

Commit

Permalink
fixed #31: only use spaces in pretty print
Browse files Browse the repository at this point in the history
  • Loading branch information
nlohmann committed Jan 18, 2015
1 parent b30e9ee commit 7724d34
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 13 deletions.
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ You can also get a string representation (serialize):

```cpp
// explicit conversion to string
std::string s = j.dump(); // {\"happy\": true, \"pi\": 3.141}
std::string s = j.dump(); // {\"happy\":true,\"pi\":3.141}

// serialization with pretty printing
std::cout << j.dump(4) << std::endl;
Expand All @@ -142,8 +142,6 @@ std::cout << j.dump(4) << std::endl;
// }
```

The value of s could be `{"pi": 3.141, "happy": true}`, but the order of the entries in the object is not fixed.

You can also use streams to serialize and deserialize:

```cpp
Expand Down
9 changes: 5 additions & 4 deletions header_only/json.h
Original file line number Diff line number Diff line change
Expand Up @@ -982,7 +982,7 @@ std::string json::dump(const bool prettyPrint, const unsigned int indentStep,
{
if (i != value_.array->begin())
{
result += prettyPrint ? ",\n" : ", ";
result += prettyPrint ? ",\n" : ",";
}
result += indent() + i->dump(prettyPrint, indentStep, currentIndent);
}
Expand Down Expand Up @@ -1017,10 +1017,11 @@ std::string json::dump(const bool prettyPrint, const unsigned int indentStep,
{
if (i != value_.object->begin())
{
result += prettyPrint ? ",\n" : ", ";
result += prettyPrint ? ",\n" : ",";
}
result += indent() + "\"" + i->first + "\": " + i->second.dump(prettyPrint, indentStep,
currentIndent);
result += indent() + "\"" + i->first + "\":" + (prettyPrint ? " " : "") + i->second.dump(
prettyPrint, indentStep,
currentIndent);
}

// decrease indentation
Expand Down
9 changes: 5 additions & 4 deletions src/json.cc
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ std::string json::dump(const bool prettyPrint, const unsigned int indentStep,
{
if (i != value_.array->begin())
{
result += prettyPrint ? ",\n" : ", ";
result += prettyPrint ? ",\n" : ",";
}
result += indent() + i->dump(prettyPrint, indentStep, currentIndent);
}
Expand Down Expand Up @@ -565,10 +565,11 @@ std::string json::dump(const bool prettyPrint, const unsigned int indentStep,
{
if (i != value_.object->begin())
{
result += prettyPrint ? ",\n" : ", ";
result += prettyPrint ? ",\n" : ",";
}
result += indent() + "\"" + i->first + "\": " + i->second.dump(prettyPrint, indentStep,
currentIndent);
result += indent() + "\"" + i->first + "\":" + (prettyPrint ? " " : "") + i->second.dump(
prettyPrint, indentStep,
currentIndent);
}

// decrease indentation
Expand Down
4 changes: 2 additions & 2 deletions test/json_unit.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1921,8 +1921,8 @@ TEST_CASE("Parser")
{
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() == "{\"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) ==
Expand Down

0 comments on commit 7724d34

Please sign in to comment.