Skip to content

Commit 5760c39

Browse files
committed
encode_csv - changed order of ostream and parameters
1 parent 9d0fe84 commit 5760c39

File tree

9 files changed

+66
-17
lines changed

9 files changed

+66
-17
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,7 @@ int main()
774774
std::cout << "(1)\n" << pretty_print(tasks) << "\n\n";
775775

776776
std::cout << "(2)\n";
777-
encode_csv(tasks, params, std::cout);
777+
encode_csv(tasks, std::cout);
778778
}
779779
```
780780
Output:

doc/Pages/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ int main()
351351
std::cout << "(1)\n" << pretty_print(tasks) << "\n\n";
352352

353353
std::cout << "(2)\n";
354-
encode_csv(tasks, params, std::cout);
354+
encode_csv(tasks, std::cout);
355355
}
356356
```
357357
Output:

doc/ref/csv/csv.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
The csv extension implements reading (writing) JSON values from (to) CSV files
44

5+
[decode_csv](decode_csv.md)
6+
7+
[encode_csv](encode_csv.md)
8+
59
[csv_parameters](csv_parameters.md)
610

711
[csv_reader](csv_reader.md)
812

913
[csv_serializer](csv_serializer.md)
1014

11-
[decode_csv](decode_csv.md)
12-
13-
[encode_csv](encode_csv.md)
14-

doc/ref/csv/decode_csv.md

+16-2
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,29 @@ Decodes a csv string or file to a `json` value.
66
```c++
77
#include <jsoncons_ext/csv/csv_reader.hpp>
88

9+
template <class Json>
10+
Json decode_csv(typename Json::string_view_type s); // (1)
11+
912
template <class Json>
1013
Json decode_csv(typename Json::string_view_type s,
11-
const basic_csv_parameters<typename Json::char_type>& params); // (1)
14+
const basic_csv_parameters<typename Json::char_type>& params); // (2)
15+
16+
template <class Json>
17+
Json decode_csv(std::basic_istream<typename Json::char_type>& is); // (3)
1218

1319
template <class Json>
1420
Json decode_csv(std::basic_istream<typename Json::char_type>& is,
15-
const basic_csv_parameters<typename Json::char_type>& params); // (2)
21+
const basic_csv_parameters<typename Json::char_type>& params); // (4)
1622
```
1723
24+
(1) Decodes csv string to json value using default [parameters](csv_parameters)
25+
26+
(2) Decodes csv string to json value using specified [parameters](csv_parameters)
27+
28+
(3) Decodes csv input stream to json value using default [parameters](csv_parameters)
29+
30+
(4) Decodes csv input stream to json value using specified [parameters](csv_parameters)
31+
1832
#### Return value
1933
2034
Returns a `Json` value

doc/ref/csv/encode_csv.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,18 @@ Serializes a json value to csv output.
88

99
template <class Json>
1010
void encode_csv(const Json& j,
11-
const basic_csv_parameters<typename Json::char_type>& params,
12-
std::basic_ostream<typename Json::char_type>& os);
11+
std::basic_ostream<typename Json::char_type>& os); // (1)
12+
13+
template <class Json>
14+
void encode_csv(const Json& j,
15+
std::basic_ostream<typename Json::char_type>& os,
16+
const basic_csv_parameters<typename Json::char_type>& params); // (2)
1317
```
1418
19+
(1) Encodes json value to csv using default [parameters](csv_parameters)
20+
21+
(2) Encodes json value to csv using specified [parameters](csv_parameters)
22+
1523
### Examples
1624
1725
#### Encode a json value to csv output
@@ -45,8 +53,7 @@ int main()
4553
]
4654
)");
4755
48-
csv_parameters params;
49-
encode_csv(books, params, std::cout);
56+
encode_csv(books, std::cout);
5057
}
5158
```
5259
Output:

examples/src/csv_examples.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,7 @@ void encode_csv_file_from_books()
298298
]
299299
)");
300300

301-
csv_parameters params;
302-
encode_csv(books, params, std::cout);
301+
encode_csv(books, std::cout);
303302
}
304303

305304
void decode_encode_csv_tasks()
@@ -316,7 +315,7 @@ void decode_encode_csv_tasks()
316315
std::cout << "(1)\n" << pretty_print(tasks) << "\n\n";
317316

318317
std::cout << "(2)\n";
319-
encode_csv(tasks, params, std::cout);
318+
encode_csv(tasks, std::cout);
320319
}
321320

322321
void csv_examples()

include/jsoncons_ext/csv/csv_reader.hpp

+22
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,18 @@ class basic_csv_reader
179179
#endif
180180
};
181181

182+
template <class Json>
183+
Json decode_csv(typename Json::string_view_type s)
184+
{
185+
json_decoder<Json> decoder;
186+
187+
basic_csv_parser<typename Json::char_type> parser(decoder);
188+
parser.reset();
189+
parser.parse(s.data(), 0, s.size());
190+
parser.end_parse();
191+
return decoder.get_result();
192+
}
193+
182194
template <class Json>
183195
Json decode_csv(typename Json::string_view_type s, const basic_csv_parameters<typename Json::char_type>& params)
184196
{
@@ -191,6 +203,16 @@ Json decode_csv(typename Json::string_view_type s, const basic_csv_parameters<ty
191203
return decoder.get_result();
192204
}
193205

206+
template <class Json>
207+
Json decode_csv(std::basic_istream<typename Json::char_type>& is)
208+
{
209+
json_decoder<Json> decoder;
210+
211+
basic_csv_reader<typename Json::char_type> reader(is,decoder);
212+
reader.read();
213+
return decoder.get_result();
214+
}
215+
194216
template <class Json>
195217
Json decode_csv(std::basic_istream<typename Json::char_type>& is, const basic_csv_parameters<typename Json::char_type>& params)
196218
{

include/jsoncons_ext/csv/csv_serializer.hpp

+8-1
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,14 @@ class basic_csv_serializer : public basic_json_output_handler<CharT>
464464
};
465465

466466
template <class Json>
467-
void encode_csv(const Json& j, const basic_csv_parameters<typename Json::char_type>& params, std::basic_ostream<typename Json::char_type>& os)
467+
void encode_csv(const Json& j, std::basic_ostream<typename Json::char_type>& os)
468+
{
469+
basic_csv_serializer<typename Json::char_type> serializer(os);
470+
j.dump(serializer);
471+
}
472+
473+
template <class Json>
474+
void encode_csv(const Json& j, std::basic_ostream<typename Json::char_type>& os, const basic_csv_parameters<typename Json::char_type>& params)
468475
{
469476
basic_csv_serializer<typename Json::char_type> serializer(os,params);
470477
j.dump(serializer);

tests/src/csv/csv_tests.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,7 @@ BOOST_AUTO_TEST_CASE(test_encode_csv_to_stream)
10141014
csv_parameters params;
10151015
params.assume_header(true);
10161016
std::ostringstream os;
1017-
encode_csv(j,params,os);
1017+
encode_csv(j, os, params);
10181018
std::cout << os.str() << std::endl;
10191019
}
10201020

0 commit comments

Comments
 (0)