Commit graph

1040 commits

Author SHA1 Message Date
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 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 d45183d426
Merge branch 'develop' of https://github.com/nlohmann/json into develop 2017-12-28 13:52:26 +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
Matthew K. Gumbel 72bff90ed9 🔧 Fix up a few more effc++ items 2017-12-24 10:03:36 -08:00
Niels Lohmann 3113a52a7d
📝 added exception 403 to documentation of at (#888)
The at function throws json::out_of_range.403 when a nonexistent object key is provided (just like the usual at function). This was not documented and users could assume json::out_of_range.404 would be thrown instead.

- Updated documentation.
- Added example code.
2017-12-23 18:38:18 +01:00
Eren Okka ab0e8b2f3a
Fix MSVC warning C4819
Replaces a U+00A0 character with regular space, and fixes a typo.
2017-12-17 18:02:55 +03:00
Niels Lohmann 9e3c4ad11f
🔖 set version to 3.0.0 2017-12-17 08:31:18 +01:00
Niels Lohmann 314e4e7699
📝 improved documentation for dump and iterator_wrapper 2017-12-16 23:58:10 +01:00
Niels Lohmann 9a51fb4da2
🚨 fixed some warnings 2017-12-16 22:19:30 +01:00
Niels Lohmann 980795b644
✏️ fixed typos 2017-12-16 12:37:44 +01:00
Niels Lohmann 2e1b1061cd
Merge pull request #875 from nlohmann/feature/spelling
Overworked library toward 3.0.0 release
2017-12-14 22:31:19 +01:00
Niels Lohmann fb8482db76
👌 fixed some issues from the last commit #875 2017-12-13 23:44:53 +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 e8d9963abe
👌 cosmetic changes and overworked spelling
- All hex literals use upper case letters after the x.
- Fixed sime typos.
- Documented some more functions.
2017-12-13 22:15:53 +01:00
Niels Lohmann a9a4ff61c6
🚨 remove C4996 warnings #872
These were the remaining direct calls to alloc.
2017-12-13 17:01:39 +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 7de009edd1
✏️ fixing typos #869 2017-12-10 13:07:47 +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
Mike Bogdanov 64d6daa76e iter_impl template conformance with C++17 2017-12-07 11:30:17 +03:00
Niels Lohmann 9e2f185ac6
💄 reformatted code after PRs 2017-12-06 22:21:11 +01:00
Mike Bogdanov 8890b935fd fixed merge conflicts 2017-12-06 12:24:50 +03:00
Mike Bogdanov daba1b6a0b fixed conformance with C++17, some members of allocator are depricated and should be used via allocator_traits 2017-12-06 11:20:42 +03:00
Théo DELRIEU c9a02cbc59
to/from_json: add a MSVC-specific static_assert to force a stacktrace 2017-12-05 10:52:55 +01:00
Niels Lohmann cc937deaf6
🚑 the last commit contained a bug #821 2017-11-26 10:15:23 +01:00
Niels Lohmann 430f03512c
🚨 fixed some warnings #821 2017-11-25 22:06:18 +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 8e067c0c3c
🔨 set bidirectional iterator tag #593 2017-10-28 09:41:35 +02:00
Niels Lohmann 61cc07ff38
📝 some documentation 2017-10-27 16:07:04 +02:00
Niels Lohmann 77f8e2f987 Merge pull request #795 from jseward/develop
Add transparent comparator and perfect forwarding support to find() and count()
2017-10-27 11:47:23 +02:00
Jamie Seward 992c836b30 Add missing spaces 2017-10-24 00:14:25 -07:00
Jamie Seward 715c98b404 Remove extra spaces 2017-10-24 00:06:22 -07:00
Jamie Seward 6c9a401ebc Remove old non-perfect forwarding find and count 2017-10-24 00:01:56 -07:00
Jamie Seward 73b1629a15 Remove tabs for spaces 2017-10-23 23:45:39 -07:00
Jamie Seward 33c6511dd0 Remove JSON_HAS_STRING_VIEW
Instead implement @gregmarr's PR comments that perfect forwarding should be used. Also cleaned up cpp language standard detection.
2017-10-23 00:43:26 -07: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 f193427e91
🔨 some simplifications 2017-10-22 08:53:43 +02:00
Niels Lohmann ef40673acb Merge branch 'develop' into develop-simplify-istream 2017-10-22 08:52:15 +02:00
Jamie Seward d468f8c4e6 Use consistent logic to determine if string_view exists 2017-10-21 16:36:05 -07:00
Jamie Seward 59cde1ad6e Fix for _HAS_CXX17 == 0
Copied from solution to https://github.com/nlohmann/json/issues/464
2017-10-21 16:29:37 -07:00
Jamie Seward 1a66679929 Add string_view support
This avoids unnecessary string copies on often used
find().
2017-10-21 15:20:13 -07:00
Sonu Lohani 92da334862 Error : 'identifier "size_t" is undefined' in linux 2017-10-21 12:52:44 +05:30
Jamie Seward 917d9d8bc3 Fix Visual Studio 2017 warnings 2017-10-16 23:23:55 -07:00
Perry Kundert a8cc7a1bc8 Consistently use std::char_traits int_type-->char conversion intrinsics 2017-10-16 08:06:10 -07:00
Jamie Seward 8ba7f69ab4 Fix whitespace 2017-10-16 00:49:59 -07:00
Jamie Seward 8a4af820c7 Fix warning C4706 2017-10-16 00:41:58 -07:00
Niels Lohmann d300a8e268
🚨 fixed warnings #776 2017-10-13 08:46:29 +02:00
Perry Kundert 23440eb86e Remove outdated commentary about the value of eof(), retain input type
o We assume the same character int_type as the unerlying std::istream
o There are no assumptions on the value of eof(), other than that it
  will not be a valid unsigned char value.
o To retain performance, we do not allow swapping out the underlying
  std::streambuf during our use of the std::istream for parsing.
2017-10-06 12:54:43 -07:00
Perry Kundert 45e1e3d48a Revert some unnecessary member initializer changes. 2017-10-06 07:53:31 -07:00
Perry Kundert 5e480b56d8 Further simplify character type handling 2017-10-06 07:37:49 -07:00
Perry Kundert 1b43a45bec Implement correct handling of std::streambuf int_type, eof()
o Make no assumptions about eof(), other than that it is somewhere
  outside of the valid range of char_type.
2017-10-05 16:16:41 -07:00
Perry Kundert 184dab60e6 Accelerate access to underlying std::istream streambuf 2017-10-05 16:16:41 -07:00
Perry Kundert f775922ca8 Specify initializers for yytest, token_string using initializer-lists
o We can retain -Weffc++ and specify default initializers by using
  initializer lists.  The risks are low (of additional non-conformat
  compilers), because there is already one other such initialization
  used in the code-base.
2017-10-05 16:16:41 -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 8665e25942 Rename get_string to move_string to imply side-effect 2017-10-05 16:16:41 -07:00
Perry Kundert e0d890cc23 Corrected unnnecessary const restriction on returned std::string 2017-10-05 16:16:41 -07:00
Perry Kundert 97a388802d Improve performance by constructing yytext as a std::string
o Return its contents when necessary.  In many cases, this avoids
  construction of multiple copies of the yytext token.  Exceeds
  performance of current develop branch.
2017-10-05 16:15:46 -07:00
Perry Kundert 7c523338c5 Remove unnnecessary NUL termination of yytext (as it may contain NULs) 2017-10-05 16:01:41 -07:00
Perry Kundert 14ca1f6f09 Restore istream performance #764
o Use std::streambuf I/O instead of std::istream; does not maintain
  (unused) istream flags.
o Further simplify get/unget handling.
o Restore original handling of NUL in input stream; ignored during
  token_string escaping.
2017-10-05 16:01:41 -07:00
Perry Kundert 12efeadc2e Further simplify istream handling; use native unget 2017-10-05 16:01:41 -07:00
Perry Kundert 90adf6ec20 Simplify get_token_string, unnecessary buffering, handle Byte Order Mark 2017-10-05 16:01:41 -07:00
Niels Lohmann 5cb6d7187d
🚨 fixing last warning in #755 2017-10-04 17:28:35 +02:00
Niels Lohmann 54bd1b5124
Merge branch 'develop' into feature/issue698 2017-10-03 17:23:05 +02:00
Niels Lohmann 7435d54e97
🔨 clean up 2017-10-02 23:06:41 +02:00
Niels Lohmann 4912231450
Merge branch 'develop' into feature/issue698 2017-10-02 18:25:25 +02:00
Niels Lohmann b91805e1f0
🚨 removing a compiler warning #755 2017-10-02 18:11:36 +02:00
Niels Lohmann f89f8b2d0b
Merge branch 'develop' into feature/issue698 2017-10-02 17:47:53 +02:00
Niels Lohmann 8be303d4fb
🏁 fixing a min() call for MSVC #762 2017-10-02 13:54:14 +02:00
Niels Lohmann 1df836ce40
removed call to std::signbit #761 2017-10-01 15:48:29 +02:00
Niels Lohmann 8af49d4be5
🚨 removing compiler warnings #755 2017-09-30 11:00:26 +02:00
Niels Lohmann 1a66527dca
📝 fixed documentation #745 2017-09-30 10:18:18 +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 31ce7e1e59
Merge branch 'develop' into feature/issue698 2017-09-09 11:05:20 +02:00
Niels Lohmann c607b5c2ac
📝 improved documentation 2017-09-06 17:14:06 +02:00
Niels Lohmann 91e0032853
📝 improved documentation 2017-08-29 23:46:26 +02:00
Niels Lohmann 15e757c42b
🔨 trying to fix memory issue with valarray 2017-08-27 10:41:39 +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 0b5e8f859b
🔨 cleanup
Fixed some warning in Clion.
2017-08-23 00:42:15 +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 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 4391bf5615
Merge branch 'feature/update' into develop 2017-08-16 07:39:30 +02:00
Niels Lohmann 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
Niels Lohmann 72afe53fa0
📝 updated documentation for update() function #661 2017-08-15 21:42:50 +02:00
Niels Lohmann 039e2f03bc
Merge branch 'develop' into feature/update 2017-08-15 19:54:22 +02:00
Niels Lohmann 08805f7f14
🔨 cleanup 2017-08-13 20:57:27 +02:00
Niels Lohmann 7d19aed567
🔨 cleanup 2017-08-13 19:02:58 +02:00
Niels Lohmann 6151b056eb
🔨 cleanup 2017-08-10 23:40:30 +02:00
Niels Lohmann a46afd4008 Merge pull request #679 from traits/patch-1
Digraph warning
2017-08-10 11:39:13 +02:00
traits 54c67dcfec Update json.hpp 2017-08-10 09:05:00 +02:00
WebProdPP c9509ccf97 Update json.hpp
mistake
2017-08-09 16:13:43 +03:00
Kyle Thompson 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