Commit graph

1948 commits

Author SHA1 Message Date
Niels Lohmann c136b6f200 Merge pull request #666 from effolkronium/develop
enable_testing only if the JSON_BuildTests is ON
2017-07-27 20:48:56 +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
Ilya Polishchuk a27dd3a6f6 enable_testing only if JSON_BuildTests is ON 2017-07-27 17:50:24 +03:00
Niels Lohmann 669ebf51bc
🔨 fixed an error in MSVC 2017-07-27 06:04:35 +02:00
Niels Lohmann 3d589fd032
🔨 fixed compilation error 2017-07-26 23:59:56 +02:00
Niels Lohmann e6aa700360
🔨 cleanup 2017-07-26 23:44:55 +02: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
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 18e0430bfe
🔨 adding destroy function to discard values 2017-07-22 22:57:22 +02:00
Niels Lohmann 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
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 024fec8a9b
🔨 more cleanup using clang-tidy 2017-07-21 18:26:07 +02:00
Niels Lohmann a09193e967
🔨 cleanup
- Replaced codepoint calculation by bit operations.
- Fixed several clang-tidy warnings.
2017-07-20 23:01:16 +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
Niels Lohmann 8a9133c6b2 Merge pull request #652 from olegendo/develop
Rename BuildTests to JSON_BuildTests
2017-07-15 11:39:27 +02:00
Niels Lohmann f1fabd1ba2 📄 added code of conduct
added Contributor Covenant Code of Conduct
2017-07-13 19:16:41 +02:00
Niels Lohmann dad4916f9e Merge pull request #654 from ryanjmulder/develop
add ensure_ascii parameter to dump. #330
2017-07-12 07:58:45 +02:00
Ryan Mulder 486f3a2d16 restore necessary comman in documentation of dump 2017-07-11 14:18:02 -04:00
Ryan Mulder 40461c6c55 update comment on dump to not indicate that ensure_ascii is true by default 2017-07-11 13:59:07 -04:00
Ryan Mulder 71597be294 add ensure_ascii parameter to dump. #330 2017-07-11 13:48:08 -04:00
Oleg Endo cd800522e4 Rename BuildTests to JSON_BuildTests
This avoids potential conflicts with other libraries when the library is
built from source and included in a bigger cmake build.
2017-07-11 22:57:49 +09:00
Niels Lohmann 7dee868a42 Merge pull request #643 from theodelrieu/refacto/split_basic_json
Refacto/split basic json
2017-07-09 23:12:35 +02:00
Théo DELRIEU 8585d35c92
move serializer outside of basic_json 2017-07-09 21:30:34 +02:00
Théo DELRIEU acff23efb2
move binary_{reader,writer} outside of basic_json 2017-07-09 21:30:33 +02:00
Théo DELRIEU bb752fd30c
move json_reverse_iterator outside of basic_json 2017-07-09 21:30:33 +02:00
Théo DELRIEU 0ba98b6fe0
move internal_iterator/iter_impl/iteration_proxy outside of basic_json 2017-07-09 21:30:31 +02:00
Théo DELRIEU 00d6e27194
move primitive_iterator outside of basic_json 2017-07-09 21:22:16 +02:00
Théo DELRIEU 8e681d1e57
move lexer/parser outside of basic_json 2017-07-09 21:22:15 +02:00
Théo DELRIEU 15625ca4a7
move input adapters outside of basic_json 2017-07-09 21:21:12 +02:00
Théo DELRIEU a332142194
move json_pointer outside of basic_json 2017-07-09 21:21:09 +02:00
Théo DELRIEU fe086d7432
forward declare basic_json, add two macros
Those macros are used to reduce template argument boilerplate
2017-07-09 16:16:42 +02:00
Niels Lohmann d3496347fc
👷 removing Clang 3.9 and 4.0
These versions are still not working properly: https://travis-ci.org/nlohmann/json/jobs/251675281
2017-07-09 12:19:14 +02:00
Niels Lohmann 504012a3db
📝 cleanup after #650
As <iostream> is not included in json.hpp any more, all code examples need to include <iostream> now.
2017-07-09 11:51:38 +02:00
Niels Lohmann a0e0579374 Merge pull request #650 from olegendo/develop
Don't include <iostream>, use std::make_shared
2017-07-09 11:12:46 +02:00
Niels Lohmann 1b2fabe802
👷 adding two recent Clang versions
Maybe the simple approach is working now - at least it is in https://github.com/taocpp/PEGTL/blob/master/.travis.yml
2017-07-09 11:10:18 +02:00
Oleg Endo e3bb156f82 fix typo 2017-07-09 15:20:28 +09:00
Oleg Endo b753cb6ee7 use std::make_shared 2017-07-09 15:19:08 +09: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 f1c543cb7b
👷 added GCC7 2017-07-08 22:59:19 +02:00
Niels Lohmann 7b05e1a687
🔨 improved performance in dump for deeply nested values 2017-07-08 22:59:04 +02:00
Niels Lohmann f697fec522
📝 fixed documentation
There was an issue in the documentation example before. Unfortunately, I did not recreate the example outputs.
2017-07-08 22:16:45 +02: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 b38ecb5ca9
🔨 simplified binary write
Also added some comments and improved the documentation.
2017-07-08 20:31:13 +02:00
Niels Lohmann b3ac36db93
🔨 excluded uncovered lines
These breaks were just added to silence a GCC warning - the GCC is right about warning as it cannot know that the expect function will not return in these two scenarios.
2017-07-08 18:34:08 +02:00
Niels Lohmann e67df7c385
Merge branch 'feature/undo_171' into develop 2017-07-08 16:34:00 +02:00
Niels Lohmann 552622343e
📝 fixed typos 2017-07-08 16:18:27 +02:00
Niels Lohmann 566f6dcf30
🔥 removing usused functions #645
It seems these functions are not required any more. The code was added in commit 7e32457 to fix issue #171. There are still regression tests for #171, so when this commit passes the CI, the functions may be removed for good.
2017-07-08 13:33:13 +02:00
Niels Lohmann 6f12749ef6
📝 added version string for Xcode 9 2017-07-08 12:55:05 +02:00