Commit graph

390 commits

Author SHA1 Message Date
Niels Lohmann
22b59693f1
💥 CBOR/MessagePack input must end with EOF #505
The CBOR and MessagePack parsers now expect the input to be read until the end. Unless the new parameter "strict" is set to false (it is true by default), an exception is raised if the parser ends prematurely. This is a breaking change as the parsers ignored unread input so far.

Furthermore, the offset/startIndex paramter introduced in #462 was removed as this behavior can be mimicked with an iterator range. For instance, instead of calling "from_cbor(vec, 5);", you can write "from_cbor({vec.begin()+5, vec.end()});".
2017-08-16 14:48:23 +02:00
Niels Lohmann
72afe53fa0
📝 updated documentation for update() function #661 2017-08-15 21:42:50 +02:00
Niels Lohmann
e523312fa2
improved test coverage 2017-08-03 17:47:42 +02:00
Niels Lohmann
d2c3592908
added test cases for update #661 2017-08-02 22:44:58 +02:00
Niels Lohmann
aad55219f8 Merge branch 'develop' into move-construction 2017-07-30 19:49:24 +02:00
Niels Lohmann
5851daa576
binary formats can be stored in std::string, std::ofstreams or std::ostringstream #477 2017-07-28 00:21:55 +02:00
Niels Lohmann
7d51214045
implemented exception-free parser #458 #582
You can now pass a boolean "allow_exceptions" to the parse functions. If it is false, no exceptions are thrown in case of a parse error. Instead, parsing is stopped at the first error and a JSON value of type "discarded" (check with is_discarded()) is returned.
2017-07-27 20:33:11 +02:00
Niels Lohmann
3d589fd032
🔨 fixed compilation error 2017-07-26 23:59:56 +02:00
Nikita Ofitserov
0f4978e503 Fix an actually invalid test
C++ overload resolution/list initialization rules are hard.
2017-07-24 01:08:33 +03:00
Niels Lohmann
4414f94cd5
🔨 using input/output adapters for CBOR and MessagePack
- You can now pass a reference to a vector to the to_cbor and to_msgpack functions. The output will be written (appended) to the vector. #476

- You can now pass an output stream with uint8_t character type to the to_cbor and to_msgpack functions. #477

- You can now read from uint8_t */size in the to_cbor and to_msgpack functions. An input adapter will be created from this pair, so you need to use braces. #478
2017-07-23 23:02:24 +02:00
Nikita Ofitserov
f5cae64e52 Update tests while fixing possible UB
std::initializer_list does not own the temporaries created in
its initialization. Therefore, storing it in an independent
stack variable is unsafe.
2017-07-23 23:59:34 +03:00
Nikita Ofitserov
7b3cbfff23 Add some tests for std::move from std::initializer_list 2017-07-23 23:47:15 +03:00
Niels Lohmann
9b1c058810
🔨 reorganized interfaces for parse/accept functions #623
We now rely on implicit conversions to an input_adapter object in the parse/accept functions.
2017-07-23 18:11:34 +02:00
Niels Lohmann
d53ef95067
🔨 fixed some warnings 2017-07-22 15:33:31 +02:00
Niels Lohmann
c7a69ae03e
started working on parser with provded result reference #418
Internally, the parser now writes its result into a JSON value provided as a reference. To be usable, the public interfaces need to be extended.
2017-07-22 15:18:38 +02:00
Niels Lohmann
f513c46749
🔨 further cleanup 2017-07-22 13:35:04 +02:00
Niels Lohmann
21d23982ca
🐛 fix for #656
A complete rewrite of the string escape function. It now provides codepoint-to-\uxxxx escaping. Invalid UTF-8 byte sequences are not escaped, but copied as-is. I haven’t spent much time optimizing the code - but the library now agrees with Python on every single Unicode character’s escaping (see file test/data/json_nlohmann_tests/all_unicode_ascii.json).

Other minor changes: replaced "size_t" by "std::size_t"
2017-07-17 07:53:02 +02:00
Ryan Mulder
71597be294 add ensure_ascii parameter to dump. #330 2017-07-11 13:48:08 -04:00
Théo DELRIEU
acff23efb2
move binary_{reader,writer} outside of basic_json 2017-07-09 21:30:33 +02:00
Théo DELRIEU
15625ca4a7
move input adapters outside of basic_json 2017-07-09 21:21:12 +02:00
Oleg Endo
f0ca96d462 include <iosfwd> instead of <iostream>
avoid bloat caused by <iostream> and std::cout and friends in apps where
iostream are not used.
2017-07-09 15:04:49 +09:00
Niels Lohmann
87bccbc335
🔨 removed exception parse_error.111
It makes no sense to have this special exception. Instead of throwing when an input adapter is created, it is better to detect a parse error in later usage when an EOF is "read" unexpectedly.
2017-07-08 21:35:13 +02:00
Niels Lohmann
015c88783e
🔨 fixed a pedantic warning 2017-07-08 12:03:12 +02:00
Niels Lohmann
63ecbfd36b
re-added test
I have no idea why this test has been removed in the first place.
2017-07-07 23:38:04 +02:00
Niels Lohmann
8b123107c0
🔨 fixed some pedantic GCC warnings 2017-07-07 22:41:22 +02:00
Niels Lohmann
e99b783def
🔨 simplifying scanner 2017-06-22 16:40:15 +02:00
Niels Lohmann
4b5433578a
added progress output for Unicode tests
Travis aborts tests if they do not produce output for 10 minutes. This commit shall fix this.
2017-06-21 18:50:11 +02:00
Niels Lohmann
6f3bebff5c
🔨 removed unexpect function 2017-06-21 07:26:50 +02:00
Niels Lohmann
e7695306f1
🔨 fixed a warning 2017-06-20 22:58:02 +02:00
Niels Lohmann
84f2e64a7c
improved coverage 2017-06-20 22:35:31 +02:00
Niels Lohmann
2f007ca092
improved coverage 2017-06-20 22:03:36 +02:00
Niels Lohmann
7c2a187258
improved test coverage 2017-06-20 21:09:26 +02:00
Niels Lohmann
e191dd833f
🔨 fixed warning about pointer members 2017-06-20 21:09:05 +02:00
Niels Lohmann
82b95ca664
🔨 simplified error handling in parser 2017-06-20 20:14:18 +02:00
Niels Lohmann
4e6f548c0b Merge pull request #624 from theodelrieu/feature/pair_tuple_conversions
add pair/tuple conversions
2017-06-19 17:31:10 +02:00
Théo DELRIEU
08d781058c
add from_json support for std::array 2017-06-19 12:03:38 +02:00
Théo DELRIEU
6e4910d5c5
add pair/tuple conversions 2017-06-19 10:16:37 +02:00
Niels Lohmann
112a6f4e53
🔨 replaced lexer's error message by const char* 2017-06-18 13:03:14 +02:00
Niels Lohmann
1fbb82de89
🔨 using std::array to buffer input 2017-06-17 20:47:53 +02:00
Niels Lohmann
889006f006
regression test for #600 2017-06-17 13:37:04 +02:00
Niels Lohmann
b27d2adcbe
accept functions to check if input is valid JSON #458 2017-06-16 19:23:55 +02:00
Théo DELRIEU
c98364834f
remove std::pair support 2017-06-13 11:11:29 +02:00
Niels Lohmann
afb959a083
🔨 removed nonportable code 2017-06-12 19:02:08 +02:00
Niels Lohmann
ac793e957f
🔨 trying to fix #367
Code from https://stackoverflow.com/a/44503794/266378 which is hopefully working with MSVC.
2017-06-12 18:58:58 +02:00
HenryLee
e12c2ee6a8 Merge branch 'develop' into iterator_arithmetic 2017-06-09 20:47:42 +10:00
Niels Lohmann
52f934cbbf Merge pull request #609 from theodelrieu/develop
Add pair support, fix CompatibleObject conversions (fixes #600)
2017-06-07 16:38:23 +02:00
Théo DELRIEU
cea39dfaa8
fix #600
Instead of calling CompatibleObjectType iterator-range constructor,
first convert json::value_type to CompatibleObjectType::value_type
2017-06-07 10:24:59 +02:00
HenryLee
6661ec755b Merge branch 'develop' into iterator_arithmetic 2017-06-07 18:01:46 +10:00
HenryLee
0f065edff6 Revert a change in reverse iterator to pass the test cases 2017-06-07 18:01:01 +10:00
Niels Lohmann
92ef19696a
✏️ cleanup after #598 2017-06-06 20:48:11 +02:00