1
0
mirror of https://github.com/nlohmann/json.git synced 2025-07-25 13:41:56 +03:00
Commit Graph

902 Commits

Author SHA1 Message Date
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
4391bf5615 Merge branch 'feature/update' into develop 2017-08-16 07:39:30 +02:00
1e360bb32b 🔨 preparation for #505
Added a parameter to control whether parsing CBOR and MessagePack must completely consume the input.
2017-08-16 07:39:11 +02:00
72afe53fa0 📝 updated documentation for update() function #661 2017-08-15 21:42:50 +02:00
039e2f03bc Merge branch 'develop' into feature/update 2017-08-15 19:54:22 +02:00
08805f7f14 🔨 cleanup 2017-08-13 20:57:27 +02:00
7d19aed567 🔨 cleanup 2017-08-13 19:02:58 +02:00
6151b056eb 🔨 cleanup 2017-08-10 23:40:30 +02:00
a46afd4008 Merge pull request #679 from traits/patch-1
Digraph warning
2017-08-10 11:39:13 +02:00
54c67dcfec Update json.hpp 2017-08-10 09:05:00 +02:00
c9509ccf97 Update json.hpp
mistake
2017-08-09 16:13:43 +03:00
4b55f0ebd6 To fix compilation issue for intel OSX compiler
o To prevent the compilation issue on OSX with the intel compiler suite.  The
error was found with icpc version 15.0.3.187 where the "__clang_version__" was
not defined correctly, while "__clang__" was.
2017-08-08 18:43:03 -04:00
ab44a50d98 Digraph warning
The original version can trigger a digraph-related warning in VS2015. Is this namespace construct a typo or something deliberate?
2017-08-07 14:23:48 +02:00
19437c15de massage -> message 2017-08-05 10:43:08 +03:00
d2c3592908 added test cases for update #661 2017-08-02 22:44:58 +02:00
d1e13d5128 🎉 first draft for #661 2017-08-02 22:12:41 +02:00
0ea0d7d860 Merge pull request #674 from wincent/patch-1
Fix "not constraint" grammar in docs
2017-08-01 20:21:04 +02:00
efdfd3aa5b replaced by-value call #673 2017-08-01 19:37:25 +02:00
391303521a Fix "not constraint" grammar in docs 2017-08-01 08:56:28 -07:00
e60002a1b3 🔨 fixed GCC warnings in #663
https://github.com/nlohmann/json/pull/663#issuecomment-318931884
2017-07-31 23:17:14 +02:00
850d856aae 🔨 cleanup after #663 2017-07-30 20:30:05 +02:00
3d67ec40a6 Merge branch 'develop' of https://github.com/nlohmann/json into develop 2017-07-30 20:01:35 +02:00
85c768084b 🔨 using emplace 2017-07-30 20:01:31 +02:00
aad55219f8 Merge branch 'develop' into move-construction 2017-07-30 19:49:24 +02:00
96dd4ffa19 🔨 simplified a call 2017-07-30 18:30:34 +02:00
7737a29518 🔨 small parser performance improvements
- replaced list of pairs by flat list in next_byte_in_range
- implemented early exit in case of parse errors
- reused memory for object keys
- direct calls to embedded objects/arrays for insertions
2017-07-30 13:25:36 +02:00
c819a2d732 🔨 refactored some scanner internals 2017-07-28 19:18:50 +02:00
5851daa576 binary formats can be stored in std::string, std::ofstreams or std::ostringstream #477 2017-07-28 00:21:55 +02:00
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
669ebf51bc 🔨 fixed an error in MSVC 2017-07-27 06:04:35 +02:00
3d589fd032 🔨 fixed compilation error 2017-07-26 23:59:56 +02:00
e6aa700360 🔨 cleanup 2017-07-26 23:44:55 +02:00
93bb71232d Move from rvalues eagerly to work around MSVC problem
On MSVC compiler, temporaries that are constructed during a
list initialization, are sometimes destroyed even before calling
the initializing constructor, instead of at the end of the
containing full-expression. This is clearly non-conforming to
[class.temporary].
As the impact of this bug is silently producing incorrect
JSON values, move eagerly from rvalues to be safe.

See https://stackoverflow.com/questions/24586411
2017-07-25 12:17:32 +03:00
897879bccb Make detail::json_ref do less work by deferring moves/copies 2017-07-24 12:29:06 +03:00
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
09cda57309 Support moving from rvalues in an std::initializer_list
This commit works around an issue in std::initializer_list design.
By using a detail::json_ref proxy with a mutable value inside,
rvalue-ness of an input to list initializer is remembered and
used later to move from the proxy instead of copying.
2017-07-23 23:57:17 +03:00
cf3ca3b78c Optimize json construction from rvalue string_t/array_t/object_t 2017-07-23 23:50:59 +03:00
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
18e0430bfe 🔨 adding destroy function to discard values 2017-07-22 22:57:22 +02:00
5b5f0090a1 🔨 trying to fix the sanitizer error
Travis found an error with Clang 3.8's sanitizers, see https://travis-ci.org/nlohmann/json/jobs/256366699. Unfortunately, I cannot reproduce this error with clang version 6.0.0 (trunk 308825) locally. However, this seems to be an issue, because so far, we did not reset a value after moving from it.
2017-07-22 16:41:42 +02:00
d53ef95067 🔨 fixed some warnings 2017-07-22 15:33:31 +02:00
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
f513c46749 🔨 further cleanup 2017-07-22 13:35:04 +02:00
024fec8a9b 🔨 more cleanup using clang-tidy 2017-07-21 18:26:07 +02:00
a09193e967 🔨 cleanup
- Replaced codepoint calculation by bit operations.
- Fixed several clang-tidy warnings.
2017-07-20 23:01:16 +02:00
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
486f3a2d16 restore necessary comman in documentation of dump 2017-07-11 14:18:02 -04:00
40461c6c55 update comment on dump to not indicate that ensure_ascii is true by default 2017-07-11 13:59:07 -04:00
71597be294 add ensure_ascii parameter to dump. #330 2017-07-11 13:48:08 -04:00
8585d35c92 move serializer outside of basic_json 2017-07-09 21:30:34 +02:00