Skip to content

Commit 1a3159f

Browse files
committed
Improve json_encoder
1 parent 242ec15 commit 1a3159f

File tree

3 files changed

+134
-134
lines changed

3 files changed

+134
-134
lines changed

include/jsoncons/json_encoder.hpp

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -215,22 +215,22 @@ namespace detail {
215215
return k;
216216
}
217217

218-
static std::array<CharT,1> colon;
219-
static std::array<CharT,2> colon_space;
220-
static std::array<CharT,2> space_colon;
221-
static std::array<CharT,3> space_colon_space;
222-
static std::array<CharT,1> comma;
223-
static std::array<CharT,2> comma_space;
224-
static std::array<CharT,2> space_comma;
225-
static std::array<CharT,3> space_comma_space;
226-
static std::array<CharT,1> left_brace;
227-
static std::array<CharT,1> right_brace;
228-
static std::array<CharT,2> left_brace_space;
229-
static std::array<CharT,2> space_right_brace;
230-
static std::array<CharT,1> left_bracket;
231-
static std::array<CharT,1> right_bracket;
232-
static std::array<CharT,2> left_bracket_space;
233-
static std::array<CharT,2> space_right_bracket;
218+
static const std::array<CharT,1> colon;
219+
static const std::array<CharT,2> colon_space;
220+
static const std::array<CharT,2> space_colon;
221+
static const std::array<CharT,3> space_colon_space;
222+
static const std::array<CharT,1> comma;
223+
static const std::array<CharT,2> comma_space;
224+
static const std::array<CharT,2> space_comma;
225+
static const std::array<CharT,3> space_comma_space;
226+
static const std::array<CharT,1> left_brace;
227+
static const std::array<CharT,1> right_brace;
228+
static const std::array<CharT,2> left_brace_space;
229+
static const std::array<CharT,2> space_right_brace;
230+
static const std::array<CharT,1> left_bracket;
231+
static const std::array<CharT,1> right_bracket;
232+
static const std::array<CharT,2> left_bracket_space;
233+
static const std::array<CharT,2> space_right_bracket;
234234
public:
235235
using allocator_type = Allocator;
236236
using char_type = CharT;
@@ -1104,40 +1104,40 @@ namespace detail {
11041104
};
11051105

11061106
template <typename CharT, typename Sink, typename Allocator>
1107-
std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::colon = {':'};
1107+
const std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::colon = {':'};
11081108
template <typename CharT,typename Sink,typename Allocator>
1109-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::colon_space = {':', ' '};
1109+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::colon_space = {':', ' '};
11101110
template <typename CharT,typename Sink,typename Allocator>
1111-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_colon = {' ', ':'};
1111+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_colon = {' ', ':'};
11121112
template <typename CharT,typename Sink,typename Allocator>
1113-
std::array<CharT,3> basic_json_encoder<CharT,Sink,Allocator>::space_colon_space = {' ', ':', ' '};
1113+
const std::array<CharT,3> basic_json_encoder<CharT,Sink,Allocator>::space_colon_space = {' ', ':', ' '};
11141114

11151115
template <typename CharT, typename Sink, typename Allocator>
1116-
std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::comma = {','};
1116+
const std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::comma = {','};
11171117
template <typename CharT,typename Sink,typename Allocator>
1118-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::comma_space = {',', ' '};
1118+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::comma_space = {',', ' '};
11191119
template <typename CharT,typename Sink,typename Allocator>
1120-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_comma = {' ', ','};
1120+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_comma = {' ', ','};
11211121
template <typename CharT,typename Sink,typename Allocator>
1122-
std::array<CharT,3> basic_json_encoder<CharT,Sink,Allocator>::space_comma_space = {' ', ',', ' '};
1122+
const std::array<CharT,3> basic_json_encoder<CharT,Sink,Allocator>::space_comma_space = {' ', ',', ' '};
11231123

11241124
template <typename CharT, typename Sink, typename Allocator>
1125-
std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::left_brace = {'{'};
1125+
const std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::left_brace = {'{'};
11261126
template <typename CharT,typename Sink,typename Allocator>
1127-
std::array<CharT,1> basic_json_encoder<CharT,Sink,Allocator>::right_brace = {'}'};
1127+
const std::array<CharT,1> basic_json_encoder<CharT,Sink,Allocator>::right_brace = {'}'};
11281128
template <typename CharT,typename Sink,typename Allocator>
1129-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::left_brace_space = {'{', ' '};
1129+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::left_brace_space = {'{', ' '};
11301130
template <typename CharT,typename Sink,typename Allocator>
1131-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_right_brace = {' ', '}'};
1131+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_right_brace = {' ', '}'};
11321132

11331133
template <typename CharT, typename Sink, typename Allocator>
1134-
std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::left_bracket = {'['};
1134+
const std::array<CharT,1> basic_json_encoder<CharT, Sink, Allocator>::left_bracket = {'['};
11351135
template <typename CharT,typename Sink,typename Allocator>
1136-
std::array<CharT,1> basic_json_encoder<CharT,Sink,Allocator>::right_bracket = {']'};
1136+
const std::array<CharT,1> basic_json_encoder<CharT,Sink,Allocator>::right_bracket = {']'};
11371137
template <typename CharT,typename Sink,typename Allocator>
1138-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::left_bracket_space = {'[', ' '};
1138+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::left_bracket_space = {'[', ' '};
11391139
template <typename CharT,typename Sink,typename Allocator>
1140-
std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_right_bracket = {' ', ']'};
1140+
const std::array<CharT,2> basic_json_encoder<CharT,Sink,Allocator>::space_right_bracket = {' ', ']'};
11411141

11421142
template <typename CharT,typename Sink=jsoncons::stream_sink<CharT>,typename Allocator=std::allocator<char>>
11431143
class basic_compact_json_encoder final : public basic_json_visitor<CharT>

test/corelib/src/json_line_split_tests.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ std::string expected = R"({
7070
.spaces_around_comma(spaces_option::no_spaces)
7171
.object_array_line_splits(line_split_kind::same_line)
7272
.array_array_line_splits(line_split_kind::new_line);
73-
std::ostringstream os;
74-
os << pretty_print(val, options);
75-
CHECK(expected == os.str());
73+
std::string buffer;
74+
val.dump_pretty(buffer, options);
75+
CHECK(expected == buffer);
7676
}
7777

7878
SECTION("array_array same_line")
@@ -91,11 +91,11 @@ std::string expected = R"({
9191
"properties": {}
9292
}
9393
})";
94-
std::ostringstream os;
95-
os << pretty_print(val,options);
94+
std::string buffer;
95+
val.dump_pretty(buffer, options);
9696

97-
//std::cout << os.str() << "\n";
98-
CHECK(expected == os.str());
97+
//std::cout << buffer << "\n";
98+
CHECK(expected == buffer);
9999
}
100100

101101
SECTION("array_array new_line")
@@ -114,11 +114,11 @@ std::string expected = R"({
114114
"properties": {}
115115
}
116116
})";
117-
std::ostringstream os;
118-
os << pretty_print(val,options);
117+
std::string buffer;
118+
val.dump_pretty(buffer, options);
119119

120-
//std::cout << os.str() << "\n";
121-
CHECK(expected == os.str());
120+
//std::cout << buffer << "\n";
121+
CHECK(expected == buffer);
122122
}
123123

124124
SECTION("array_array multi_line")
@@ -137,10 +137,10 @@ std::string expected = R"({
137137
"properties": {}
138138
}
139139
})";
140-
std::ostringstream os;
141-
os << pretty_print(val,options);
142-
//std::cout << os.str() << "\n";
143-
CHECK(expected == os.str());
140+
std::string buffer;
141+
val.dump_pretty(buffer, options);
142+
//std::cout << buffer << "\n";
143+
CHECK(expected == buffer);
144144
}
145145

146146
SECTION("object_array same_line")
@@ -159,10 +159,10 @@ std::string expected = R"({
159159
"properties": {}
160160
}
161161
})";
162-
std::ostringstream os;
163-
os << pretty_print(val,options);
164-
//std::cout << os.str() << "\n";
165-
CHECK(expected == os.str());
162+
std::string buffer;
163+
val.dump_pretty(buffer, options);
164+
//std::cout << buffer << "\n";
165+
CHECK(expected == buffer);
166166
}
167167

168168
SECTION("object_array new_line")
@@ -187,10 +187,10 @@ std::string expected = R"({
187187
"properties": {}
188188
}
189189
})";
190-
std::ostringstream os;
191-
os << pretty_print(val,options);
192-
//std::cout << os.str() << "\n";
193-
CHECK(expected == os.str());
190+
std::string buffer;
191+
val.dump_pretty(buffer, options);
192+
//std::cout << buffer << "\n";
193+
CHECK(expected == buffer);
194194
}
195195

196196
SECTION("")
@@ -215,10 +215,10 @@ std::string expected = R"({
215215
"properties": {}
216216
}
217217
})";
218-
std::ostringstream os;
219-
os << pretty_print(val,options);
220-
//std::cout << os.str() << "\n";
221-
CHECK(expected == os.str());
218+
std::string buffer;
219+
val.dump_pretty(buffer, options);
220+
//std::cout << buffer << "\n";
221+
CHECK(expected == buffer);
222222
}
223223
}
224224

0 commit comments

Comments
 (0)