Chuck Atkins
564506a885
cmake: add import config tests
2018-09-30 22:52:47 -04:00
Niels Lohmann
1fae82b7a7
Merge branch 'develop' into fix/1237
2018-09-29 14:50:36 +02:00
Niels Lohmann
d26f39466e
Merge pull request #1231 from theodelrieu/feature/get_with_parameter
...
Add a get overload taking a parameter.
2018-09-29 14:30:04 +02:00
knilch
8c1387cfb3
unit-testsuites.cpp: fix hangup if file not found
...
If run from the wrong directory, std::ifstream f("test/data/big-list-of-naughty-strings/blns.json"); will not find the file and thus f.eof() will never return true.
Use canonical C++ file reading loop from https://gehrcke.de/2011/06/reading-files-in-c-using-ifstream-dealing-correctly-with-badbit-failbit-eofbit-and-perror/ instead.
2018-09-28 11:33:23 +02:00
Théo DELRIEU
521fe49fec
Add basic_json::get_to function.
...
Takes an lvalue reference, and returns the same reference.
This allows non-default constructible types to be converted without
specializing adl_serializer.
This overload does not require CopyConstructible either.
Implements #1227
2018-09-28 11:25:23 +02:00
Henry Fredrick Schreiner
7a37ba0c02
Adding 4.8 test to travis
2018-09-27 22:31:39 +02:00
Julian Becker
ef358ae695
BSON: Fixed hangup in case of incomplete bson input and improved test coverage
2018-09-25 20:34:25 +02:00
Julian Becker
bce4816275
BSON: Added test case for the different input/output_adapters
2018-09-24 23:35:19 +02:00
Julian Becker
763705c2a7
Fix: Add missing begin()
and end()
member functions to alt_string
2018-09-24 19:50:28 +02:00
Théo DELRIEU
4e52277b70
Fix issue #1237
...
* Make the conversion operator SFINAE correct.
* Workaround a GCC bug with some traits in type_traits.hpp
The first bullet-point implies that every `get`/`get_ptr` be SFINAE
correct as well.
2018-09-20 10:33:14 +02:00
Ben Berman
8f07ab6392
Replace "key-style argument" with "string argument"
2018-09-17 15:36:38 -04:00
Julian Becker
df33a90774
BSON: Bugfix for non-empty arrays
2018-09-15 14:08:38 +02:00
Julian Becker
cf485c2907
BSON: Support for arrays
2018-09-15 13:54:08 +02:00
Julian Becker
120d1d77d4
BSON: test case for a more complex document
2018-09-15 13:41:05 +02:00
Julian Becker
5ce7d6bdd7
BSON: support objects with objects as members
2018-09-15 13:03:42 +02:00
Julian Becker
83b427ad67
BSON: unsigned integers
2018-09-15 12:20:30 +02:00
Julian Becker
c0d8921a67
BSON: support objects with int64 members
2018-09-15 12:00:53 +02:00
Julian Becker
7ee361f7ad
BSON: support objects with int32 members
2018-09-15 11:54:17 +02:00
Julian Becker
c5ef023171
BSON: support objects with null members
2018-09-15 11:39:12 +02:00
Julian Becker
6c447de076
BSON: Support objects with string members
2018-09-15 11:33:24 +02:00
Julian Becker
0c0f2e44b5
BSON: support doubles
2018-09-15 10:32:03 +02:00
Julian Becker
9a0dddc5d2
BSON: Object with single boolean
2018-09-15 03:08:50 +02:00
Julian Becker
5f5836ce1c
BSON: Support empty objects
2018-09-15 00:43:39 +02:00
Julian Becker
f06c8fd8e3
BSON: serialization of non-objects is not supported
2018-09-15 00:20:03 +02:00
Niels Lohmann
ebb3c03293
🎨 cleanup after #1228
2018-09-09 18:19:33 +02:00
Théo DELRIEU
4b4bbceebf
make from_json SFINAE-correct
2018-09-07 14:10:37 +02:00
Ben Berman
ad053ef09c
Fix tests for improved error 305(hopefully)
2018-08-30 13:21:55 -04:00
Niels Lohmann
9f3857ef6f
🔖 set version to 3.2.0
2018-08-18 18:46:15 +02:00
Niels Lohmann
5ad52f4167
⬆️ Catch 1.12.0
2018-08-18 12:02:12 +02:00
Niels Lohmann
57faaf42ca
🚨 fixed a compiler warning
2018-08-18 08:15:03 +02:00
Niels Lohmann
e33b31e6aa
🐛 fixed callback-related issue ( https://github.com/nlohmann/json/issues/971#issuecomment-413678360 )
2018-08-17 23:09:45 +02:00
Niels Lohmann
07494e06d7
🚨 fixed some compiler warnings
2018-08-16 18:20:30 +02:00
Théo DELRIEU
38f8a51a8f
use abstract sax class in parser tests
2018-08-16 11:59:49 +02:00
Théo DELRIEU
9bbb133094
remove no_limit constant and default values
2018-08-16 11:59:05 +02:00
Théo DELRIEU
442886d040
use templates in the sax interface instead of virtuals
2018-08-16 11:58:52 +02:00
Théo DELRIEU
f6febbe359
split meta.hpp, add detected_t (used to define concepts)
2018-08-16 11:58:42 +02:00
Niels Lohmann
fed70f6bff
🎨 reindented code
2018-08-14 22:11:08 +02:00
Michael Gmelin
05b27e83b7
Exclude bytewise comparison in certain tests.
...
These tests never worked - they weren't run before
d5aaeb4
.
Note that these tests would fail because of this library
ordering dictionary keys (which is legal). So changing the
input files (or modifying stored cbor/msgpack/ubjson files)
would make the tests work and they could get removed from
"exclude_packaged".
Also move parsing of files in these unit tests to within
the inner sections, so that they're only parsed
number_of_files * number_of_sections instead of
number_of_files * number_of_files * number_of_sections
(so, instead of close to 100k parses about 700).
2018-07-29 14:52:52 +02:00
Michael Gmelin
d5aaeb4cce
Make section names unique in loops, as catch doesn't support duplicate
...
sections, see also https://github.com/catchorg/Catch2/issues/816#issuecomment-278268122
As a result, when built with gcc, loop iterations were skipped. When
built with clang, the test aborted with an assertion in catch.hpp
line 6222.
This also addresses the issues discussed here:
https://github.com/nlohmann/json/issues/1032#issuecomment-378707696
and here:
https://github.com/catchorg/Catch2/issues/1241
Please note that this introduces new problems, as some of
the unit tests fail now - the library stores keys in
lexographical order, while the cbor/msgpack/ubjson examples
store them in original order.
2018-07-29 10:44:36 +02:00
Niels Lohmann
3760a38b7e
🏁 implicit conversion is not allowed with MSVC
2018-07-21 11:47:05 +02:00
Niels Lohmann
5b14411669
🏁 trying to fix C2440 error
...
Error in AppVeyor:
unit-conversions.cpp(441): error C2440: 'initializing': cannot convert from 'nlohmann::json' to 'std::nullptr_t'
(https://ci.appveyor.com/project/nlohmann/json/build/2838/job/wo7im01sq6tvhe9m )
2018-07-21 10:59:00 +02:00
Niels Lohmann
347e77bdc1
🚑 fix for #1169
2018-07-21 10:31:55 +02:00
Sonu Lohani
b8ad3388ec
Fixed compiler error in VS 2015 for debug mode
...
https://github.com/nlohmann/json/issues/1114
2018-06-29 09:34:41 +05:30
Niels Lohmann
86a96b059d
Merge pull request #1134 from Daniel599/feature/items_iterator
...
fixed compile error for #1045
2018-06-28 21:21:17 +02:00
Julius Rakow
9f00db48d9
📝 link to cppreference via HTTPS
2018-06-24 22:34:47 +02:00
Niels Lohmann
09c0df4a21
👷 choosing correct image
2018-06-24 17:40:16 +02:00
Niels Lohmann
d8fe13fc83
🔨 fixed escaping for MinGW
2018-06-24 16:57:53 +02:00
Niels Lohmann
7fa4ddf93e
💄 fixed indentation
2018-06-23 17:27:40 +02:00
Niels Lohmann
bf348ca8a4
Merge pull request #1028 from gracicot/develop
...
Added support for string_view in C++17
2018-06-23 17:10:04 +02:00
Niels Lohmann
850922269d
🚨 removed compiler warnings
2018-06-23 10:28:04 +02:00
Niels Lohmann
e7c1638d11
💄 cleanup
2018-06-18 22:03:46 +02:00
Niels Lohmann
1c81e9f5ae
Merge pull request #1130 from agrianius/develop
...
test (non)equality for alt_string implementation
2018-06-18 22:01:53 +02:00
Théo DELRIEU
2c920a1032
run make amalgamate
2018-06-18 15:14:10 +02:00
Théo DELRIEU
2b37d7ed86
from_json: add overload for std::unordered_map
...
Fixes #1133
2018-06-18 15:14:10 +02:00
Danielc
1566ad4053
fixed compile error for #1045 ; to_json for iternation_proxy_internal was needed
2018-06-16 12:01:49 +03:00
Vitaliy
f574d7e084
simplify templates for operators, add more checks
2018-06-14 15:07:06 +03:00
Vitaliy
cd28d872e7
forward declarations to make new compilers happy
2018-06-11 20:50:39 +03:00
Vitaliy
3d3055909c
define global operator< for const char* and alt_string
2018-06-11 19:09:57 +03:00
Vitaliy
4feb8211ca
test (non)equality for alt_string implementation
2018-06-11 18:03:46 +03:00
Guillaume Racicot
714c592680
Disabled implicit conversion to string_view on MSVC 15.13 and older
2018-06-01 14:22:57 -04:00
Niels Lohmann
e5a67fc3f8
Merge branch 'develop' of https://github.com/nlohmann/json into develop
2018-05-28 17:57:46 +02:00
Niels Lohmann
a49644ab74
🚑 adjusted Fuzzer to new parser
...
out_of_range exceptions where unexpected before - the parser used to crash in these situations...
2018-05-28 17:57:22 +02:00
Niels Lohmann
0efaf891e5
Merge pull request #1089 from theodelrieu/feature/map_conversion
...
Provide a from_json overload for std::map
2018-05-28 14:53:23 +02:00
Théo DELRIEU
c5e63fd684
Provide a from_json overload for std::map
...
This overload is chosen only when BasicJsonType::string_t
is not constructible from std::map::key_type.
Currently, converting a map to json treats it as an array of pairs.
fixes #1079
2018-05-28 11:06:24 +02:00
Niels Lohmann
1f84cc2c88
✅ adjusted test cases
2018-05-17 16:50:37 +02:00
Niels Lohmann
717301d1bc
Merge branch 'testsuite' into feature/sax2
2018-05-17 16:36:43 +02:00
Niels Lohmann
4639bb2c8f
✅ added more tests from recent nst's JSONTestSuite
2018-05-17 10:10:01 +02:00
Niels Lohmann
5ff2abb90d
Merge branch 'develop' into feature/sax2
2018-05-06 13:29:23 +02:00
Niels Lohmann
ed69e50ad2
📄 added SPDX-License-Identifier
2018-05-03 17:41:45 +02:00
Niels Lohmann
fa3e42f826
Merge branch 'develop' into feature/wstring
2018-04-29 13:16:12 +02:00
Niels Lohmann
b5d1755dfb
🔥 removed commented-out test cases #1060
2018-04-22 15:41:42 +02:00
Niels Lohmann
8d8f890771
💩 first try on #1045
2018-04-10 08:29:07 +02:00
Guillaume Racicot
aaee18ce90
Added test for string conversion with string_view
2018-04-09 11:15:33 -04:00
Niels Lohmann
cf91b4f2bb
Merge branch 'develop' into feature/wstring
2018-04-08 11:36:58 +02:00
Niels Lohmann
e1ea8369ad
Merge branch 'develop' into feature/sax2
2018-04-08 09:31:59 +02:00
Niels Lohmann
18a0271a95
Merge branch 'develop' into feature/issue1021
2018-04-08 09:21:43 +02:00
Niels Lohmann
495436a5d5
Merge pull request #1026 from ktonon/develop
...
Added public target_compile_features for auto and constexpr
2018-04-03 17:34:42 +02:00
Niels Lohmann
aa89c5e048
🔨 removing unget_character() function from input adapters #834
2018-04-02 21:10:48 +02:00
Niels Lohmann
6678eb2b4a
✅ improved test coverage #1031
2018-04-02 15:38:49 +02:00
Niels Lohmann
727dd4664b
🔨 trying to make tests run with MSVC #1031
2018-04-02 12:27:07 +02:00
Niels Lohmann
ab89ae4e50
🔨 trying to make tests run with MSVC #1031
2018-04-02 11:34:36 +02:00
Niels Lohmann
eb06d0531a
🚧 added input adapter for wide strings #1031
2018-04-01 19:12:36 +02:00
Niels Lohmann
4efa8cdb4c
💚 fixed Valgrind options #1030
2018-03-29 17:19:21 +02:00
Guillaume Racicot
c78dbc366c
Added test for conversion to string_view
2018-03-29 01:03:57 -04:00
Niels Lohmann
5f723bbec6
🔨 realized callback parser wirh SAX interface #971
2018-03-28 23:39:39 +02:00
Niels Lohmann
896a9db461
🔨 improved code #1021
2018-03-28 19:37:21 +02:00
Kevin Tonon
73cc5089e3
Using target_compile_features to specify C++ 11 standard
2018-03-28 13:11:49 -04:00
Niels Lohmann
a9baab76c2
🚑 fix for #1021
2018-03-28 18:20:55 +02:00
Niels Lohmann
4f6b2b6429
🔨 changed SAX interface
2018-03-21 20:12:06 +01:00
Niels Lohmann
2537677e4c
✅ improved test coverage
2018-03-20 23:40:01 +01:00
Niels Lohmann
9e1abb4842
✅ improved coverage
2018-03-20 22:39:08 +01:00
Niels Lohmann
1e38ffc014
✅ more tests
2018-03-20 20:04:11 +01:00
Niels Lohmann
99ecca55c4
✅ improved test coverage
2018-03-20 18:49:10 +01:00
Niels Lohmann
9e07e9b4ec
✨ implemented non-throwing binary reader
2018-03-19 22:48:13 +01:00
Niels Lohmann
606a25195f
✅ improved test coverage
2018-03-17 19:15:59 +01:00
Niels Lohmann
27cf05af8d
Merge branch 'develop' into feature/sax2
2018-03-14 22:02:19 +01:00
Niels Lohmann
afef474c0d
🔖 set version to 3.1.2
2018-03-14 21:09:27 +01:00
Niels Lohmann
a52e8355b8
⏪ oops
2018-03-14 17:32:48 +01:00
Niels Lohmann
21410d50af
🏁 moved /Wall to CMake
2018-03-14 17:21:31 +01:00
Niels Lohmann
1262d474eb
🏁 fixed an MSVC warning
2018-03-14 07:32:28 +01:00
Niels Lohmann
abac6a0e84
Merge branch 'develop' into feature/sax2
2018-03-13 23:58:17 +01:00
Niels Lohmann
8557151d90
♻️ adjusting lexer/parser in symmetry to #1006
2018-03-12 19:15:11 +01:00
Niels Lohmann
3d4f6a2940
🔨 cleaner exception interface
2018-03-11 22:47:25 +01:00
Niels Lohmann
ad47b0fbde
♻️ refactored binary readers to use a SAX parser
2018-03-11 18:47:38 +01:00
Vitaliy Manushkin
392c033805
test refactoring
2018-03-11 00:29:04 +03:00
Vitaliy Manushkin
51349537fc
add unit test: checking dump to alternative string type
2018-03-10 23:59:10 +03:00
Niels Lohmann
149d2fd09c
💚 improved test coverage
2018-03-10 11:24:00 +01:00
Niels Lohmann
35e43df625
Merge branch 'develop' into feature/sax2
2018-03-09 21:56:30 +01:00
Niels Lohmann
9918523077
📝 cleanup after #1001
2018-03-09 21:31:46 +01:00
Niels Lohmann
7c1a788893
Merge branch 'develop' into feature/sax2
2018-03-08 07:39:37 +01:00
Niels Lohmann
cf60e18c89
🔥 removing failing test (work on this in branch "leak")
2018-03-08 07:39:21 +01:00
Niels Lohmann
38345fd06c
👌 fixed some more warnings
2018-03-07 22:51:22 +01:00
Niels Lohmann
303a0c5843
Merge branch 'develop' into feature/sax2
2018-03-07 22:26:01 +01:00
Niels Lohmann
d183d34b96
💚 added another test case
2018-03-07 22:25:25 +01:00
Niels Lohmann
476b2e09be
💚 added regression tests for #972 and #977
2018-03-06 20:13:31 +01:00
Niels Lohmann
62030615a0
Merge pull request #986 from theodelrieu/fix/basic_json_conversion
...
Fix/basic json conversion
2018-03-06 19:27:39 +01:00
Niels Lohmann
5beab80553
🔨 using the SAX-DOM parser
2018-03-06 18:17:07 +01:00
Niels Lohmann
5b9d03cfdb
🔨 added SAX-DOM-Parser
2018-03-05 21:06:00 +01:00
Niels Lohmann
9d27429527
🔨 added error messages to SAX interface
2018-03-05 16:46:35 +01:00
Niels Lohmann
86991d5204
Merge branch 'develop' into feature/sax2
2018-03-05 16:16:43 +01:00
Niels Lohmann
8d104e6fe3
💚 fixed test case
2018-02-28 22:40:48 +01:00
Niels Lohmann
5773e164bb
🚨 fixed a linter warning
2018-02-28 19:59:54 +01:00
Théo DELRIEU
8711ec6034
support construction from other basic_json types
...
Before this patch, `basic_json` types with different template arguments
were treated as `CompatibleArrayType`. Which sometimes leads to recursive
calls and stack overflows.
This patch adds a constructor and a `get` overload to deal with
different `basic_json` types.
2018-02-27 16:48:09 +01:00
Théo DELRIEU
c22f2d41f3
missing CHECK_NOTHROW in unit-udt
2018-02-27 11:09:53 +01:00
Niels Lohmann
3ff9455332
🔨 added a SAX-DOM-Parser
2018-02-26 23:39:23 +01:00
Niels Lohmann
21352c4d8e
♻️ refactored SAX parser
2018-02-26 20:08:12 +01:00
Niels Lohmann
8d6b3d44d6
👌 fixed some compiler warnings
2018-02-25 18:35:16 +01:00
Niels Lohmann
8c7f46f7d0
🔨 removed a logic error and improved coverage
2018-02-25 17:10:30 +01:00
Niels Lohmann
922f7a3d0e
✅ added more tests for SAX parsing
2018-02-25 14:21:30 +01:00
Niels Lohmann
ac230e8b4b
🔨 fixed test cases to be more robust
2018-02-25 10:44:47 +01:00
Niels Lohmann
374ebacc51
✨ added a SAX parser #971
2018-02-24 18:04:07 +01:00
Niels Lohmann
938c861a09
🔖 set version to 3.1.1
2018-02-12 22:59:36 +01:00
Niels Lohmann
94b7a8da66
💄 fixed indentation
2018-02-12 20:46:14 +01:00
Théo DELRIEU
01d6118828
Fix constraints on from_json(CompatibleArrayType)
...
Fixes #924
2018-02-12 15:37:33 +01:00
Niels Lohmann
74675dd69c
⏪ back to the original version
2018-02-09 22:40:52 +01:00
Niels Lohmann
ab05df3a48
🔨 another try
2018-02-09 22:27:08 +01:00
Niels Lohmann
0111f3187e
🔨 working on #953
2018-02-09 21:30:15 +01:00
Niels Lohmann
83db7876c5
🏁 removing test case that fails on MSVC #962
2018-02-09 18:32:12 +01:00
Niels Lohmann
33a9b00ce6
🐛 fix for #962
...
Added out_of_range exception for UBJSON containers with sizes that exceed the target container's max_size.
2018-02-06 22:38:53 +01:00
Niels Lohmann
8b457ace25
🐛 fixing CBOR's indefinity length strings #961
...
Beside the fix discussed in #961 , we also had to re-adjust a test case. It seems that it was failing before, and I "fixed" it to work with the broken implementation...
2018-02-06 20:43:03 +01:00
Niels Lohmann
737cffe0cb
🔨 fixed directory for lcov coverage
2018-02-04 20:58:50 +01:00
Niels Lohmann
0258484626
🔖 set version to 3.1.0
...
- updated documentation wrt. new repository layout
- temporarily switched off Homebrew --HEAD building (can only be switched on after release)
- set copyright date to 2018
2018-02-01 22:20:26 +01:00
Théo DELRIEU
14cd019861
fix cmake install directory (for real this time)
...
* Rename 'develop' folder to 'include/nlohmann'
* Rename 'src' folder to 'single_include/nlohmann'
* Use <nlohmann/*> headers in sources and tests
* Change amalgamate config file
2018-02-01 11:06:51 +01:00
Niels Lohmann
57e6fddd90
🚨 fixed warnings
2018-01-30 23:57:49 +01:00
Niels Lohmann
102c474397
🔨 clean up
2018-01-28 14:13:02 +01:00
Niels Lohmann
05f49fa401
✅ added roundtrip tests for UBJSON
2018-01-27 18:47:32 +01:00
Niels Lohmann
f0b26c8f38
✅ added fuzzer for UBJSON input
2018-01-27 18:38:11 +01:00
Niels Lohmann
b0a68f540f
✅ added roundtrip tests for UBJSON
2018-01-27 18:37:55 +01:00
Niels Lohmann
dbfd7e532b
Merge branch 'develop' of https://github.com/nlohmann/json into develop
2018-01-23 16:33:10 +01:00
Niels Lohmann
3c68a796df
🔥 deprecated iterator_wrapper #874
...
Also fixed some warnings from GCC.
2018-01-23 16:33:08 +01:00
Niels Lohmann
f5c4e9f3a1
Merge pull request #919 from theodelrieu/fix/sfinae_for_incomplete_types
...
fix sfinae on basic_json UDT constructor
2018-01-23 07:32:06 +01:00
Niels Lohmann
7eabb6ba36
📝 updated documentation for UBJSON functions
2018-01-22 23:23:17 +01:00
Niels Lohmann
3cca630836
🔨 cleanup after #915
2018-01-21 15:55:35 +01:00
Niels Lohmann
010e596001
Merge pull request #915 from abolz/dtoa
...
Floating-point formatting
2018-01-21 15:02:57 +01:00
Niels Lohmann
9e5d901f55
Merge branch 'feature/ubjson' into develop
2018-01-21 14:04:29 +01:00
Niels Lohmann
a8f711a2f1
➕ using Google Benchmark #921
2018-01-18 21:57:21 +01:00
Théo DELRIEU
dcee778c1e
fix sfinae on basic_json UDT constructor
...
Avoid compiler errors when performing SFINAE checks on basic_json
and incomplete types.
2018-01-17 12:17:38 +01:00
abolz
787204f076
Add unit-tests for detail::to_chars
2018-01-15 21:13:17 +01:00
abolz
0695ac4001
Add tests for #360
2018-01-15 21:07:25 +01:00
abolz
68a9736738
Tests: Re-enable some round-trip tests
2018-01-15 21:07:25 +01:00
abolz
6e2e466c27
Tests: Don't rely on the format used for floating-point formatting
2018-01-15 21:07:25 +01:00
abolz
107c21a488
Tests: Exponents are formatted with a leading '+' sign
2018-01-15 21:07:25 +01:00
abolz
3ae82d91a2
Tests: Floating-point formatting uses lower case 'e'
2018-01-15 21:07:24 +01:00
Niels Lohmann
92f7295063
🔨 cleanup
2018-01-15 13:21:33 +01:00
Niels Lohmann
9d6b3731b9
✅ improved test coverage
2018-01-14 20:07:38 +01:00
Niels Lohmann
f85f4967fe
✅ improved test coverage
2018-01-14 17:22:06 +01:00
Niels Lohmann
0e8f01a963
Merge branch 'develop' into feature/rfc7396
2018-01-14 10:28:09 +01:00
Niels Lohmann
1b54d4a5aa
Merge branch 'develop' into feature/ubjson
2018-01-14 10:10:56 +01:00
Niels Lohmann
3a7585e738
✅ added more tests
2018-01-10 22:47:07 +01:00
Niels Lohmann
965a70e38d
🔨 optimized output format
2018-01-10 11:22:19 +01:00
Niels Lohmann
fb1154c237
🚧 debug
2018-01-08 21:26:41 +01:00
Niels Lohmann
97e0d20ce9
🚧 debug
2018-01-08 21:16:20 +01:00
Niels Lohmann
ebf28a26ee
🚧 another try
2018-01-08 20:49:02 +01:00
Théo DELRIEU
7e4ee23f40
add single_header CMake target
2018-01-08 20:09:43 +01:00
Niels Lohmann
3d7658da89
🚧 working on AppVeyor's errors
2018-01-08 19:48:18 +01:00
Niels Lohmann
126ce2e56c
🚧 further UBJSON
2018-01-08 18:54:17 +01:00
Niels Lohmann
c9938ea838
🚧 started UBJSON implementation
2018-01-07 22:09:12 +01:00
Niels Lohmann
15b6421d07
✅ added UTF-8 decoder capability and stress test
...
As described in http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt ; Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/ > - 2015-08-28 - CC BY 4.0
2018-01-05 23:26:22 +01:00
Niels Lohmann
78f8f837e6
added items() function #874
2018-01-05 18:34:10 +01:00
Niels Lohmann
92484f0caf
🔖 set version to 3.0.1
2017-12-29 18:31:13 +01:00
Niels Lohmann
ebc6849b71
✅ added test for #894
2017-12-29 16:53:04 +01:00
Niels Lohmann
3b3b6e8e69
🚑 fix for #894
...
- Implemented "copy" in terms of "add".
- Added check for JSON Pointer array indices to make sure the complete reference token was processed.
- Added test suite from https://github.com/json-patch/json-patch-tests
2017-12-28 13:52:23 +01:00
Niels Lohmann
9e3c4ad11f
🔖 set version to 3.0.0
2017-12-17 08:31:18 +01:00
Niels Lohmann
9a51fb4da2
🚨 fixed some warnings
2017-12-16 22:19:30 +01:00
Niels Lohmann
4c871c58f8
✅ re-added tests for algorithms
2017-12-16 11:16:34 +01:00
Niels Lohmann
c6e7eae394
✨ implemented JSON Merge Patch (RFC 7396)
...
SQLite's json1 extension (https://www.sqlite.org/json1.html ) supports JSON Merge Patch (https://tools.ietf.org/html/rfc7396 ). As the implementation is trivial and we already support JSON Patch, I think this could be a nice extension to the library.
2017-12-13 23:36:22 +01:00
Niels Lohmann
8419bfbbd2
✅ improved test coverage
...
As we guarantee proper UTF-8 before, we do not need to cope with it later.
2017-12-12 20:44:57 +01:00
Niels Lohmann
569d275f65
💥 throwing an exception in case dump encounters a non-UTF-8 string #838
...
We had a lot of issues with failing roundtrips (i.e., parse errors from serializations) in case string were stored in the library that were not UTF-8 encoded. This PR adds an exception in this case.
2017-12-11 22:38:05 +01:00
Niels Lohmann
772bb3cc20
📝 fixing documentation #867
...
The example in the documentation on how to "force" an array of arrays was wrong since the first release. Fixed the documentation and added checks for the README unit tests.
2017-12-10 12:32:20 +01:00
Matthias Möller
5b4855dea2
fix targetname
2017-11-26 10:29:51 +01:00
Niels Lohmann
430f03512c
🚨 fixed some warnings #821
2017-11-25 22:06:18 +01:00
Niels Lohmann
de75cf89f7
✅ improved test coverage
2017-11-25 19:41:02 +01:00
Niels Lohmann
5696660eba
🔨 another try to fix #714
...
adding std::ios_base::binary when opening all_unicode.json.cbor
2017-10-31 15:04:14 +01:00
Théo DELRIEU
4b46abf97c
add forwarding references to json_ref constructor
...
fixes #805
2017-10-28 14:22:57 +02:00
Niels Lohmann
734e2b73cf
🔨 cleanup
2017-10-27 11:49:24 +02:00
Niels Lohmann
1b1bd0e3e6
⏪ #714 is still not fixed
2017-10-23 12:01:50 +02:00
Niels Lohmann
89650c99dd
🚧 checking if #714 is now fixed with MSVC
...
Hopefully, #764 fixed this.
2017-10-22 11:16:33 +02:00
Niels Lohmann
b0c380b0f8
📝 cleanup after the last PRs
2017-10-22 09:12:35 +02:00
Niels Lohmann
be4fba7baf
Merge branch 'develop' of https://github.com/nlohmann/json into develop
2017-10-22 08:53:46 +02:00
Niels Lohmann
24b6e028a9
✅ improved test coverage
2017-10-22 08:53:27 +02:00
Niels Lohmann
ef40673acb
Merge branch 'develop' into develop-simplify-istream
2017-10-22 08:52:15 +02:00
Jamie Seward
a99fcb4e7d
Add comments and newline
2017-10-17 22:53:35 -07:00
Jamie Seward
917d9d8bc3
Fix Visual Studio 2017 warnings
2017-10-16 23:23:55 -07:00
Jamie Seward
af99090742
Disable warning C4389: '==': signed/unsigned mismatch
...
Lots of tests have this warning.
Also moved out of for loop, doesn't need to be done every loop.
2017-10-16 01:02:48 -07:00
Jamie Seward
19f8f1c075
Add missing "u8"
...
This causes test-udt to crash due to bad iterator
2017-10-16 00:21:38 -07:00
Jamie Seward
5ec44fe9e3
Add /W4 for MSVS
2017-10-15 22:56:38 -07:00
Perry Kundert
546e148b24
Further performance improvements, and corrections in get_token_string
...
o An (-'ve valued, typically -1) EOF must never be allowed in
token_string, as it be converted to 255 -- a legitimate value.
o Comparing against a specific eof() (-1, typically) is more costly than
detecting +'ve/-'ve. Since EOF is the only non-positive value allowed
we can use the simpler test.
o Removed unnecessary test for token_string size, as it is already
tested in the method, and must never occur in correct code; used an
assert instead.
2017-10-05 16:16:41 -07:00
Perry Kundert
f585fe4eec
Test to confirm parsing of multiple JSON records in a istream #367
2017-10-05 16:01:41 -07:00
Niels Lohmann
615366447a
🔧 removing -Weffc++ warnings
2017-10-05 19:43:19 +02:00
Niels Lohmann
75f4678b96
🔨 added filter script for branch coverage
2017-10-05 19:08:15 +02:00
Niels Lohmann
c204ac82e0
🔨 adjusted Coverity script to work without Makefile
2017-10-05 07:13:59 +02:00
Niels Lohmann
1b3df3a63f
🔨 trying to use Coveralls with CMake #698
2017-10-04 22:18:21 +02:00
Niels Lohmann
e2045eae53
🏁 and another try
2017-10-03 18:47:08 +02:00
Niels Lohmann
a85bc358f7
🏁 another try
2017-10-03 18:21:40 +02:00
Niels Lohmann
3457e7bc5b
🏁 try to get MSVC 2017 running again
2017-10-03 17:57:40 +02:00
Niels Lohmann
f89f8b2d0b
Merge branch 'develop' into feature/issue698
2017-10-02 17:47:53 +02:00
Niels Lohmann
8af49d4be5
🚨 removing compiler warnings #755
2017-09-30 11:00:26 +02:00
Niels Lohmann
647711fad1
✅ improved test coverage
2017-09-14 17:31:28 +02:00
Niels Lohmann
e75adc21a5
Merge branch 'develop' into feature/issue698
2017-09-13 18:57:25 +02:00
Niels Lohmann
b90529c36d
✅ improved test coverage
2017-09-13 18:56:54 +02:00
Niels Lohmann
82c93680d1
Merge branch 'develop' into feature/issue698
2017-09-10 22:38:23 +02:00
Niels Lohmann
e2e0ecd867
✅ improved test coverage
2017-09-10 22:38:04 +02:00
Niels Lohmann
248db1e423
Merge branch 'develop' into feature/issue698
2017-09-10 11:42:57 +02:00
Niels Lohmann
7410763731
✅ improved test coverage
2017-09-10 11:42:43 +02:00
Niels Lohmann
cafc2d057a
Merge branch 'develop' into feature/issue698
2017-09-10 10:22:10 +02:00
Niels Lohmann
da97cf7895
✅ improved test coverage
2017-09-10 10:21:53 +02:00
Niels Lohmann
295d65ada7
Merge branch 'develop' into feature/issue698
2017-09-10 01:13:43 +02:00
Niels Lohmann
fcba9ec537
🔨 clean up
2017-09-10 01:12:03 +02:00
Niels Lohmann
41994ba028
Merge branch 'develop' into feature/issue698
2017-09-09 16:53:37 +02:00
Niels Lohmann
b21d7810fa
✅ improved test coverage
2017-09-09 16:53:27 +02:00
Niels Lohmann
c1d6478584
Merge branch 'develop' into feature/issue698
2017-09-09 13:07:40 +02:00
Niels Lohmann
9ae6796a38
✅ improved test coverage
2017-09-09 13:07:10 +02:00
Niels Lohmann
31ce7e1e59
Merge branch 'develop' into feature/issue698
2017-09-09 11:05:20 +02:00
Niels Lohmann
fd250ae2b1
✅ improved test coverage
2017-09-09 11:04:58 +02:00
Niels Lohmann
91e0032853
📝 improved documentation
2017-08-29 23:46:26 +02:00
Niels Lohmann
4f5c345817
👷 run sanitizer another time to check if it works
2017-08-26 08:20:37 +02:00
Niels Lohmann
5e7acbf05e
👷 adjusted flags for Clang sanitizer
...
we are overrding the CXXFLAGS provided by travis in order to use gcc's libstdc++
2017-08-25 22:34:00 +02:00
Niels Lohmann
268f5a3d0a
👷 added option to switch off exceptions
2017-08-25 21:29:27 +02:00
Niels Lohmann
3dcd360139
👷 adding status messages
2017-08-25 20:19:58 +02:00
Niels Lohmann
05b97c473a
👷 added flags for Valgrind and Clang sanitizer
2017-08-25 20:12:21 +02:00
Niels Lohmann
c87b080cc5
👷 new cmake file for test cases
2017-08-25 18:06:22 +02:00
Théo DELRIEU
bb1b4c934e
fix from_json implementation for pair/tuple
...
Introduced by 6e4910d5c5
Fixes #707
2017-08-23 10:05:43 +02:00
Niels Lohmann
9fd031b6f4
🐛 re-added support for std::valarray #702
2017-08-22 23:28:23 +02:00
Niels Lohmann
64ef100ebf
Revert " 💥 changed iterators to andom_access_iterator #593 "
...
This reverts commit c77a0be5f3
.
2017-08-20 20:44:44 +02:00
Niels Lohmann
8acaf5bdbc
🚨 fixing two compiler warnings
2017-08-20 19:31:07 +02:00
Niels Lohmann
c77a0be5f3
💥 changed iterators to andom_access_iterator #593
...
This commit changes the iterator category to andom_access_iterator and allows offsets and subscript operators for object iterators.
2017-08-16 21:35:22 +02:00
Niels Lohmann
aba8b58492
🔨 approach to un-break the changes for #462
2017-08-16 20:11:05 +02:00
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
1f31a5b808
⬆️ Catch v1.9.7
2017-08-16 10:23:39 +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
ac42333749
⬆️ Catch v1.9.6
2017-07-08 12:11:45 +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
f2cdb3d594
⬆️ Catch v1.9.5
2017-06-20 20:13:56 +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
Théo DELRIEU
85de93ba93
add std::pair<CompatibleStringType, T> support
2017-06-06 13:56:16 +02:00
HenryLee
fb91aa81da
Merge branch 'develop' into iterator_arithmetic
2017-06-05 20:24:21 +10:00
HenryLee
2ba554e442
Merge branch 'develop' into issue550
2017-06-05 20:24:08 +10:00
Niels Lohmann
d19c5ced4b
🐛 skipping BOM for iterators #602
...
I totally forgot about byte order marks in this scenario.
2017-06-02 12:38:32 +02:00
Niels Lohmann
c043ba6978
🔥 removed failing test #529
2017-06-01 07:32:39 +02:00
HenryLee
f2e1643039
Add test cases for iterator to const iterator assignment
2017-05-31 00:50:40 +10:00
HenryLee
c09a4cbbd7
Add test cases for iterator to const iterator conversion
2017-05-31 00:31:16 +10:00
HenryLee
0c2ed00ebe
Add missing test cases for n + it arithmetic in iterators
2017-05-29 22:39:27 +10:00
HenryLee
5b245dae06
Comment out the exception message check in operator[] of reverse iterator
2017-05-29 22:19:10 +10:00
HenryLee
a3bf0131c4
Fix some more reverse iterator arithmetic test codes
2017-05-29 19:43:45 +10:00
HenryLee
adc73d6d5f
Fix the arithmetic mistakes in reverse iterator
2017-05-29 18:52:53 +10:00
HenryLee
ed62129f8e
Override n + iterator operator in the iterator
2017-05-27 13:44:14 +10:00
Niels Lohmann
52adf3fd5b
🔨 fixed compilation
2017-05-22 22:59:57 +02:00
Niels Lohmann
9a576fe1d9
✅ added test for #367
2017-05-22 22:49:39 +02:00
Niels Lohmann
9e507dfad5
✅ tests and fix for #367
...
operator>> now works as expected.
2017-05-21 16:36:51 +02:00
Niels Lohmann
0c3ffe12cd
⏪ reverting first/second experiment #350
2017-05-15 21:07:58 +02:00
Niels Lohmann
723c875604
💬 replaced "backspace" with "backslash" #509
2017-05-13 19:56:38 +02:00
Jay Sistar
d6c78dacd8
Fixing assignement for iterator wrapper second, and adding unit test
2017-05-10 17:53:27 +00:00
Niels Lohmann
2afbd33472
🔨 working on #367
...
Test cases succeed as expected, but the example in #367 is not fully
realized yet.
2017-05-10 12:06:24 +02:00
Niels Lohmann
962da00171
✨ implemented an indentation character #520
...
An optional parameter for dump() allows to set the character to use for
indentation (default: space). In case a JSON value is serialized to an
output stream, its fill character is used (and can be set with
std::setfill).
2017-05-07 19:27:40 +02:00
Niels Lohmann
fba1bcdd0b
🐛 fixing #575
...
I forgot to consider the offset.
2017-05-07 13:41:48 +02:00
Niels Lohmann
8b9f51179e
✨ started working on #458
...
a simple acceptor function
2017-04-24 17:46:21 +02:00
Niels Lohmann
cfc2e8391c
🔨 removed too long running tests
2017-04-24 15:07:43 +02:00
Niels Lohmann
6d2c0a7928
✅ added more Unicode test cases
2017-04-23 22:54:21 +02:00
Niels Lohmann
734297ff45
🔨 cleanup
2017-04-23 20:32:05 +02:00
Niels Lohmann
01e05d89e9
🔨 fixed a compiler warning
...
Default arguments are forbidden in lambdas.
2017-04-23 18:40:17 +02:00
Niels Lohmann
b686cc6ad9
🔨 removed #ifdefs
2017-04-23 18:34:14 +02:00
Niels Lohmann
5febd04a26
🐛 fixed test suite
2017-04-23 18:22:35 +02:00
Niels Lohmann
4aedae400e
✅ added exhaustive UTF-8 tests
...
Creates all well-formed sequences of bytes up to length 4. Furthermore,
creates ill-formed sequences by removing required trailing bytes or
changing bytes. As the tests can take a lot of time, preprocessor
symbols are introduced.
2017-04-23 15:12:50 +02:00
Niels Lohmann
2a21146160
Merge branch 'develop' into feature/manual_lexer
2017-04-22 11:35:58 +02:00
Niels Lohmann
db9bf953f3
🔨 improved diagnostic output
2017-04-15 10:40:10 +02:00
Niels Lohmann
717106eced
🔨 templated output_adapter and used in class serializer
2017-04-14 19:49:05 +02:00
Niels Lohmann
186a9fd44d
🔨 simplified interface for parser, lexer, and binary_reader
...
These classes are now constructed with an interface adapter. This moves
complexity from various places into the interface adapter class, or to
some factories which now implement the different flavors of input.
Furthermore, input adapters are kept in std::shared_ptr to avoid the
need of manual deletion.
2017-04-09 19:28:15 +02:00
Niels Lohmann
6f99d5b2e9
🔨 fixed test case
...
One test case for CBOR and MessagePack assumed little endianess.
2017-04-08 23:39:17 +02:00
Niels Lohmann
97a25de938
✨ proposal for #428
...
This implementation forwards the iterators to std::map::insert.
2017-04-07 18:29:09 +02:00
Niels Lohmann
d62d48fc48
🔀 merge branch 'develop' into feature/manual_lexer
2017-04-07 17:19:52 +02:00
Niels Lohmann
90273e930c
🐛 fix for #512
...
We totally forgot to implement the comparison operators other than ==
and != for scalar types. Consequently, comparing a JSON value with a
scalar type led to compile errors.
2017-04-07 15:44:41 +02:00
Niels Lohmann
b15fc13dd1
🔨 implemented MessagePack in binary_reader
2017-04-04 16:59:19 +02:00
Niels Lohmann
3a34f2d82c
Merge branch 'develop' into feature/manual_lexer
2017-04-04 15:55:40 +02:00
Niels Lohmann
89efe627fe
🔨 a lot of restructuring
...
- removed uncached input stream adapter; it was too slow anyway
- implemented a class binary_read which parses CBOR based on input
adapters
- in the CBOR parser, numbers are created via memcpy to avoid undefined
behavior
2017-04-02 18:46:21 +02:00
Théo DELRIEU
af9b21151c
add enum class default conversions
2017-04-02 13:10:15 +02:00
Niels Lohmann
3a5cf9bd0a
🔨 improved code coverage
2017-04-01 08:34:58 +02:00
Niels Lohmann
50ee0a62f5
🔨 replaced lookup-tables by switches
2017-03-31 23:24:33 +02:00
Niels Lohmann
60057a4728
🔨 fixed bugs introduced by merging from develop
2017-03-29 07:54:26 +02:00
Niels Lohmann
a690a9f2d2
Merge branch 'develop' into feature/manual_lexer
2017-03-29 00:57:09 +02:00
Niels Lohmann
c2e80a72d7
🔨 deprecated j << istream / j >> ostream functions #367
...
The implementation is non-standard. Deprecation allows a simpler API in
the future without removing any features.
2017-03-29 00:39:47 +02:00
Niels Lohmann
9578c0f700
Merge branch 'develop' into feature/manual_lexer
2017-03-28 23:47:17 +02:00
Niels Lohmann
b4dbebffcd
✅ added regression test for #464
2017-03-28 23:28:54 +02:00
Niels Lohmann
d37ca2eba8
🔨 fixed test case
2017-03-28 20:29:27 +02:00
Niels Lohmann
50e251f5f6
🔨 adjusted test case to new signature of token_type_name()
2017-03-28 20:17:00 +02:00
Niels Lohmann
bbb6bd9de5
🔨 fixing last failing test cases
2017-03-28 17:00:03 +02:00
Niels Lohmann
06e2a291b1
🔨 fixed number parsing
2017-03-26 17:26:41 +02:00
Niels Lohmann
3b069b4b4c
🔨 adjusted more expected exceptions
2017-03-26 16:19:07 +02:00
Niels Lohmann
99e0d8b339
🔨 fixed \uxxxx parsing
2017-03-26 15:29:08 +02:00
Niels Lohmann
f47cf152a8
Merge branch 'develop' into feature/manual_lexer
2017-03-26 13:14:14 +02:00
Niels Lohmann
53b501a785
🔨 cleanup
2017-03-25 23:31:03 +01:00
Niels Lohmann
cf7786887c
🔨 fixed check for is_nothrow_copy_constructible
...
We now only demand our exceptions to be is_nothrow_copy_constructible
if std::runtime_exception is.
2017-03-25 17:35:57 +01:00
Niels Lohmann
cc36c65a89
🚑 made exceptions nothrow-copy-constructible #531
...
To have nothrow-copy-constructible exceptions, we inherit from
std::runtime_error which can cope with arbitrary-length error messages.
Intermediate strings are built with static functions and then passed to
the actual constructor.
2017-03-25 16:22:52 +01:00
Niels Lohmann
40160f482a
🚧 manual lexer
...
This commit removed the re2c lexer and replaced it by a manual version.
Its integration is not yet complete: number parsing does not respect
locales or overflows. Furthermore, parsing does not need to end with
EOF. Therefore, a lot of test cases fail. The idea is to push this
branch forward so we can conduct performance comparisons. So far, a
nice side effect are better diagnosis messages in case of parse errors.
2017-03-24 19:49:02 +01:00
Niels Lohmann
31a6c0910e
🚑 fix for #519
...
Added catch branch for out_of_range exception that can occur if input
file contains a number overflow.
2017-03-17 22:18:48 +01:00
Niels Lohmann
f547679de5
🚑 fix for #516 and #518
...
We should compare the binary serializations rather than the JSON values
themselves. This fix was already done for CBOR and apparently forgotten
for MessagePack.
2017-03-17 22:18:05 +01:00
Niels Lohmann
cd43600e6f
💄 cleanup after #508
2017-03-16 19:02:05 +01:00
Niels Lohmann
773b33e016
Merge pull request #508 from theodelrieu/feature/c_array_conversion
...
add to_json method for C arrays
2017-03-16 19:00:58 +01:00
Niels Lohmann
c5711f3072
🚧 a lot of minor changes
...
- Removed unused headers.
- Added override where needed.
- Added description for parse_error.113 exception.
- Fixed some conversion warnings.
- Integrated cbor_expect_string function for CBOR maps.
- Added documentation on the supported CBOR/MessagePack features.
- Added test to check all initial bytes for CBOR input.
2017-03-16 18:39:33 +01:00
Théo DELRIEU
dbebf8de47
add to_json method for C arrays
...
If the array can be converted to basic_json::string_t, the overload
in this commit is not chosen.
2017-03-16 15:20:39 +01:00
Niels Lohmann
1de80e8af4
🔨 added user-defined exception #493
...
Replaced old std::invalid_argument exception by parse_error.111 to have
unified exceptions in case of input stream errors.
2017-03-14 21:31:36 +01:00
Niels Lohmann
63c2c62f19
🔨 changed call from "not good()" to "fail()" #493
...
Also merged develop into this feature branch.
2017-03-14 21:24:53 +01:00
Niels Lohmann
b026591e9e
🚑 added special case to fuzzers to fix #504
...
Since #329 , NaN and inf numbers do not yield an exception, but are
stored internally and are dumped as “null”. This commit adjusts the
fuzz testers to deal with this special case.
2017-03-14 21:05:38 +01:00
Niels Lohmann
bfe4788e32
🚑 fix for #500
...
Removed a check that already failed in MSVC.
2017-03-14 16:14:05 +01:00
Niels Lohmann
84072fbd6d
💄 fixed indentation
2017-03-14 16:07:28 +01:00
Niels Lohmann
c5cf32e34d
🔨 added user-defined exception 406
2017-03-12 20:59:33 +01:00
Niels Lohmann
855cdcf05c
🔀 merge branch 'develop' into feature/exceptions_3.0.0
2017-03-12 20:22:30 +01:00
Niels Lohmann
8feaf8dc94
💥 implemented new handling of NaN and INF #70 #329 #388
...
- If an overflow occurs during parsing a number from a JSON text, an
exception (std::out_of_range for the moment, to be replaced by a
user-defined exception #244 ) is thrown so that the overflow is detected
early and roundtripping is guaranteed.
- NaN and INF floating-point values can be stored in a JSON value and
are not replaced by null. That is, the basic_json class behaves like
double in this regard (no exception occurs). However, NaN and INF are
serialized to “null”.
- Adjusted test cases appropriately.
2017-03-12 18:38:05 +01:00
Niels Lohmann
87eafd8d6a
✅ added regression tests for #473
...
These tests currently pass without any adjustments to the source code.
2017-03-12 15:20:17 +01:00
Niels Lohmann
89f6068385
Merge branch 'develop' into feature/exceptions_3.0.0
2017-03-12 11:51:24 +01:00
Niels Lohmann
4d7c29923e
🚑 fix for #486
...
Implemented std::less<value_t> to allow using value_t as std::map key
in MSVC.
2017-03-12 10:40:36 +01:00
Niels Lohmann
4e49829851
🚑 fix for #493
...
Added a test to check if the input stream is good() before executing
getline on it. Also added two test cases that set the failbit and
badbit before calling file_line_buffer.
2017-03-11 19:26:12 +01:00
Niels Lohmann
ff0b18d10c
Merge branch 'feature/vector_bool' into develop
2017-03-11 17:22:14 +01:00
Niels Lohmann
c7afb34e57
🎨 cleanup after #496
...
Ran “make pretty” and added a note to the README file.
2017-03-11 16:01:26 +01:00
Niels Lohmann
f4126e4dd8
✨ added overload for std::less<value_t> #486
...
MSVC needs this overload to compile code containing a std::map that
uses nlohmann::detail::operator as key.
2017-03-11 15:44:14 +01:00
Niels Lohmann
f5f6dac800
✨ added overload for std::vector<bool> #494
...
Adds a to_json function for std::vector<bool> to allow implicit
conversion from bit vectors to basic_json.
2017-03-11 15:32:44 +01:00
Ted Lyngmo
9cfb777b65
Fix -Weffc++ warnings (GNU 6.3.1)
2017-03-11 13:56:38 +01:00
Niels Lohmann
758c4addc1
🚑 fix for #492
...
The original test case relied on an invalidated iterator. This error
did not occur before, but only with GCC with -D_GLIBCXX_DEBUG. This
commit fixes the test case. The library is unaffected by this change.
2017-03-09 18:20:26 +01:00
Niels Lohmann
9374eaa013
🔨 added user-defined exception 501
2017-03-08 19:16:53 +01:00
Niels Lohmann
c8a6ce79ea
🚑 fixing fuzzers to work with new exceptions
2017-03-08 18:37:03 +01:00
Niels Lohmann
fc9b528ec9
🔨 changed an exception
2017-03-08 18:07:21 +01:00
Niels Lohmann
8fcd01631f
✅ improved test coverage
...
Tests for parse_error.109 were missing.
2017-03-08 16:39:17 +01:00
Niels Lohmann
625cf7e3f7
🔨 added user-defined exception 112
2017-03-07 20:05:34 +01:00
Niels Lohmann
5407333224
🔨 added user-defined exception 111
2017-03-06 22:37:46 +01:00
Niels Lohmann
21ec0e7806
🔨 added user-defined exception 110
2017-03-06 21:00:13 +01:00
Niels Lohmann
a186106bde
🔨 user-defined exception 302
...
Also moved all exception classes into the detail namespace and
introduced them via “using” into basic_json.
2017-03-06 19:34:44 +01:00
Niels Lohmann
38c2e20ce8
added user-defined exceptions 404-405
2017-03-05 23:25:22 +01:00
Niels Lohmann
30331fa21f
🔨 added user-defined exception 403
2017-03-05 23:16:17 +01:00
Niels Lohmann
60da36aee2
🔨 added user-defined exceptions 401-402
2017-03-05 22:56:39 +01:00
Niels Lohmann
491c9780a7
🔨 added user-defined exception 311
2017-03-05 22:39:21 +01:00
Niels Lohmann
6751d650be
🔨 added user-defined exception 311
2017-03-05 22:31:08 +01:00
Niels Lohmann
9e560ca40c
🔨 added user-defined exceptions 313-315
2017-03-05 19:58:26 +01:00
Niels Lohmann
144cf6a4c7
🔨 added user-defined exceptions 310
2017-03-05 19:48:11 +01:00
Niels Lohmann
5cca44c161
🔨 added user-defined exceptions 309
2017-03-05 19:42:05 +01:00
Niels Lohmann
70b2c3f45e
🔨 added user-defined exceptions 308
2017-03-05 19:35:24 +01:00
Niels Lohmann
2a9393af00
🔨 added user-defined exceptions 307
2017-03-05 19:26:44 +01:00
Niels Lohmann
bb740c43fb
🔨 added user-defined exceptions 306
2017-03-05 19:15:56 +01:00
Niels Lohmann
aa842b4a27
🔨 added user-defined exceptions 305
2017-03-05 19:08:12 +01:00
Niels Lohmann
f473f74fb0
🔨 added user-defined exceptions 303-304
2017-03-05 18:56:35 +01:00
Niels Lohmann
068c7acda9
🔨 added user-defined exceptions 301
2017-03-05 18:40:09 +01:00
Niels Lohmann
0c40c8e3be
🔨 added user-defined exceptions 2xx
2017-03-03 14:34:57 +01:00
Niels Lohmann
a4274d7766
🔨 added user-defined exceptions 205-206
2017-03-03 14:00:42 +01:00
Niels Lohmann
875b2da95d
🔨 added user-defined exceptions 203-204
2017-03-03 13:38:14 +01:00
Niels Lohmann
9381f6c4da
🔨 added user-defined exceptions 201-202
...
Started implementing exceptions for invalid iterators.
2017-03-03 13:19:45 +01:00
Niels Lohmann
0c6b1f8a24
Merge branch 'develop' into feature/exceptions_3.0.0
2017-03-03 12:54:45 +01:00
Niels Lohmann
776758d7a2
🔨 added user-defined exception 109
...
This exception occurs when a JSON pointer contains an array index that
can not be converted into a number.
2017-03-03 12:54:37 +01:00
Niels Lohmann
b86d2148ef
🔨 added user-defined exceptions 106-108
...
These exceptions occur when JSON pointers are malformed.
2017-03-03 11:56:58 +01:00
Niels Lohmann
01d3a006b1
⬆️ updated Catch to v1.8.1
2017-03-02 18:13:19 +01:00
Niels Lohmann
06815d274e
🔨 added user-defined exceptions 104 and 105
...
These exceptions are thrown in case of parse errors in JSON patch
documents.
2017-03-02 17:55:13 +01:00
Niels Lohmann
c085e3bac2
🔨 started with user-defined exceptions #301 #244
...
Added class hierarchy for user-defined exceptions (#244 ). Integrated
parse exceptions 101-103. Parse exceptions include the byte count of
the last read character to locate the position of the error (#301 ).
2017-03-01 21:28:44 +01:00
Niels Lohmann
7b8fd864e2
🔥 removed deprecated constructor #480
...
The constructor basic_json(std::istream&, const parser_callback_t) has
been deprecated since version 2.0.0. This commit removes it together
with its code example, deprecation macro, and test cases. The code now
also compiles with -W-deprecated-declarations.
2017-03-01 17:49:03 +01:00
Niels Lohmann
d69242c6ba
💄 cleanup
...
- Added comments for the serializer class.
- Added test case for resizing of the indentation string.
- Using std::none_of to check if “.0” needs to be added to
floating-point number.
2017-02-28 19:20:50 +01:00
Niels Lohmann
224f99070b
⚡ micro-optimization of dump()
...
A lot of small changes to avoid memory allocations:
- The locale is only queried once rather than with every number
serialization.
- The indentation string is recycled between different calls.
- The string escape function avoids a copy if no escaping is necessary.
- The string escape and the space function use a complete switch case
instead of cascaded ifs.
Cachegrind measures some 15% performance improvement.
2017-02-28 16:28:22 +01:00
Niels Lohmann
54ef5f7b47
🔨 moved serialization functions to serializer class
...
The class is currently just a wrapper for an std::ostream and collects
all functions related to serialization. The next step should be
recycling of variables to avoid repetitive initialization for each
recursive dump call.
2017-02-27 21:22:39 +01:00
Niels Lohmann
bf4d744d1a
✅ more tests for meta() call
2017-02-26 14:34:58 +01:00
Niels Lohmann
d1b30250d6
✅ added missing tests
2017-02-26 11:50:52 +01:00
Niels Lohmann
27c65b860b
🔖 version 2.1.1
2017-02-25 16:34:38 +01:00
Niels Lohmann
a646c9c599
🔀 merge branch 'cotire' of https://github.com/tusharpm/json into tusharpm-cotire
2017-02-22 19:45:10 +01:00
Niels Lohmann
8cec55a271
🚧 fixed more warnings
2017-02-22 18:14:29 +01:00
Niels Lohmann
7d14f167b8
🚑 fix for #465
2017-02-20 22:48:27 +01:00
Niels Lohmann
1a6d7f5bca
🚧 try to fix some warnings in MSVC
2017-02-20 18:32:11 +01:00
Niels Lohmann
83f1d2c81b
✨ added start index for from_cbor and from_msgpack ( #462 )
2017-02-19 21:17:05 +01:00
Niels Lohmann
4151f2d297
✅ added test with thousands_sep
2017-02-19 20:08:01 +01:00
Tushar Maheshwari
85ce4d7b53
⚡ cmake compile time reduce using cotire
...
- Add prefix header
- Include catch.hpp
- Include json.hpp
- Replace private with public for all json_unit files
- Move `unit.cpp` to an object library
- cotire issue: strip whitespace from CMAKE_INCLUDE_SYSTEM_FLAG_CXX
2017-02-19 13:35:54 +05:30
Niels Lohmann
513eb3ab5f
🚧 clean up
2017-02-18 11:00:18 +01:00
Niels Lohmann
6408402ad2
🔀 merge #378 (for #362 and #454 )
2017-02-16 09:24:45 +01:00
Niels Lohmann
057b1e606b
🔀 merged #415 (fix for #414 )
2017-02-16 08:50:20 +01:00
Niels Lohmann
b9f3149451
🚑 fix for #452
2017-02-15 21:30:28 +01:00
Mihai STAN
6bf93b3d06
Merge remote-tracking branch 'upstream/develop' into develop
2017-02-15 15:00:25 +02:00
Niels Lohmann
22b9a301d6
Merge pull request #450 from nlohmann/TurpentineDistillery-feature/locale_independent_str_to_num
...
TurpentineDistillery feature/locale independent str to num
2017-02-14 07:18:35 +01:00
Niels Lohmann
c95ff863bf
⬆️ updated Catch to v1.7.2
2017-02-13 18:55:11 +01:00
Niels Lohmann
265c5b5207
🔨 more work on the number parser
2017-02-13 18:51:23 +01:00
Niels Lohmann
b84705d557
✅ improved test coverage
2017-02-12 20:14:43 +01:00
Niels Lohmann
c8191c8172
🔨 further cleanup
2017-02-12 18:50:17 +01:00
Niels Lohmann
c2d55109c1
🔨 make lexer distinguishes number types
2017-02-11 16:54:25 +01:00
Niels Lohmann
8d88a1da2a
🔀 merged #379 and fixed conflicts
2017-02-05 13:13:41 +01:00
Niels Lohmann
d284c86dd1
✅ uncommented some tests
2017-02-04 21:00:41 +01:00
Niels Lohmann
922fe693e1
⬆️ updated Catch to v1.7.0
2017-02-04 15:30:28 +01:00
Niels Lohmann
1cfdc2a753
🐛 fixed test compilation
2017-02-04 08:25:55 +01:00
Niels Lohmann
5976caf032
⚡ improved test compilation speed #445
2017-02-03 18:09:55 +01:00
Niels Lohmann
16af771277
✅ added roundtrip test for the Big List of Naughty Strings
2017-02-01 17:34:39 +01:00
Niels Lohmann
0164b10e10
✅ added missing tests found by mutate++
2017-01-29 17:18:58 +01:00
Niels Lohmann
d870826811
🔖 set version to 2.1.0
2017-01-28 16:03:35 +01:00
Mihai STAN
6198439f59
fix #414 - comparing to 0 literal
...
Overload comparison operators for all types that could be converted
to nullptr.
2017-01-24 22:33:37 +02:00
Niels Lohmann
030cf674ef
🚧 fixed a warning
2017-01-24 12:49:38 +01:00