Niels Lohmann
96dd4ffa19
🔨 simplified a call
2017-07-30 18:30:34 +02:00
Niels Lohmann
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
Niels Lohmann
c819a2d732
🔨 refactored some scanner internals
2017-07-28 19:18:50 +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
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