✨ implemented an indentation character #520
An optional parameter for dump() allows to set the character to use for indentation (default: space). In case a JSON value is serialized to an output stream, its fill character is used (and can be set with std::setfill).
This commit is contained in:
		
							parent
							
								
									fba1bcdd0b
								
							
						
					
					
						commit
						962da00171
					
				
					 10 changed files with 76 additions and 16 deletions
				
			
		|  | @ -53,7 +53,7 @@ TEST_CASE("convenience functions") | |||
|                                       const char* escaped) | ||||
|         { | ||||
|             std::stringstream ss; | ||||
|             json::serializer s(json::output_adapter<char>::create(ss)); | ||||
|             json::serializer s(json::output_adapter<char>::create(ss), ' '); | ||||
|             s.dump_escaped(original); | ||||
|             CHECK(ss.str() == escaped); | ||||
|         }; | ||||
|  |  | |||
|  | @ -207,6 +207,12 @@ TEST_CASE("object inspection") | |||
|                   "{\n\"array\": [\n1,\n2,\n3,\n4\n],\n\"boolean\": false,\n\"null\": null,\n\"number\": 42,\n\"object\": {},\n\"string\": \"Hello world\"\n}"); | ||||
|         } | ||||
| 
 | ||||
|         SECTION("indent=1, space='\t'") | ||||
|         { | ||||
|             CHECK(j.dump(1, '\t') == | ||||
|                   "{\n\t\"array\": [\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t4\n\t],\n\t\"boolean\": false,\n\t\"null\": null,\n\t\"number\": 42,\n\t\"object\": {},\n\t\"string\": \"Hello world\"\n}"); | ||||
|         } | ||||
| 
 | ||||
|         SECTION("indent=4") | ||||
|         { | ||||
|             CHECK(j.dump(4) == | ||||
|  |  | |||
|  | @ -51,6 +51,15 @@ TEST_CASE("serialization") | |||
|             CHECK(ss.str() == | ||||
|                   "[\n    \"foo\",\n    1,\n    2,\n    3,\n    false,\n    {\n        \"one\": 1\n    }\n]"); | ||||
|         } | ||||
| 
 | ||||
|         SECTION("given fill") | ||||
|         { | ||||
|             std::stringstream ss; | ||||
|             json j = {"foo", 1, 2, 3, false, {{"one", 1}}}; | ||||
|             ss << std::setw(1) << std::setfill('\t') << j; | ||||
|             CHECK(ss.str() == | ||||
|                   "[\n\t\"foo\",\n\t1,\n\t2,\n\t3,\n\tfalse,\n\t{\n\t\t\"one\": 1\n\t}\n]"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     SECTION("operator>>") | ||||
|  | @ -72,5 +81,16 @@ TEST_CASE("serialization") | |||
|             CHECK(ss.str() == | ||||
|                   "[\n    \"foo\",\n    1,\n    2,\n    3,\n    false,\n    {\n        \"one\": 1\n    }\n]"); | ||||
|         } | ||||
| 
 | ||||
|         SECTION("given fill") | ||||
|         { | ||||
|             std::stringstream ss; | ||||
|             json j = {"foo", 1, 2, 3, false, {{"one", 1}}}; | ||||
|             ss.width(1); | ||||
|             ss.fill('\t'); | ||||
|             j >> ss; | ||||
|             CHECK(ss.str() == | ||||
|                   "[\n\t\"foo\",\n\t1,\n\t2,\n\t3,\n\tfalse,\n\t{\n\t\t\"one\": 1\n\t}\n]"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue