json v3.11.0 Release Notes

Release Date: 2022-08-01 // over 1 year ago
  • Full Changelog

    • ⚠ ICPC: warning #1098: the qualifier on this friend declaration is ignored #3632
    • Starting with 3.10.4, just adding \#include json.hpp causes compile error: `overload resolution selected deleted operator '=' #3620
    • xwidgets doesn't compile with version >3.10.3 #3602
    • json_pointer__pop_back.cpp example does not compile #3600
    • nlohmann::json::array 'push_back' is ambiguous #3589
    • Multiple versions causing conflict #3588
    • ERROR: ThreadSanitizer: SEGV on unknown address #3584
    • ✅ unicode4 test consistently fails on RISC-V hardware #3579
    • 📜 sax_parse(iterator, json_sax_t *) string callback clobbers spaces #3574
    • 📜 Nlohmann JSON Parse crash with raylib-cpp #3570
    • ordered_json doesn't accept keys of types other than string_t (e.g., string_view) #3558
    • turning an object into an array #3547
    • json:parse_bjdata_fuzzer: ASSERT: ref_stack.back()->is_array() #3541
    • ⚠ Warning about potential null dereference in GCC 12.1 (Fedora 36) #3525
    • 👷 Enable 32bit unit test in CI #3524
    • Error when roundtripping BJData #3519
    • 📜 ASSERT error while parsing BJData #3513
    • 👻 An exception occurred when sending a string with double quotes #3504
    • Binary reader for BJData creates incorrect SAX events #3503
    • 👍 It can't support "nan", "inf", "-inf" for float type #3494
    • 📜 ASAN error while parsing BJData (Heap-buffer-overflow READ 1) #3492
    • 📜 UBSAN error while parsing BJData (Null-dereference) #3491
    • 📜 UBSAN error while parsing BJData (Invalid-bool-value) #3490
    • json:parse_bjdata_fuzzer reaches assertion #3475
    • Compilation with -fmodules-ts and use inside of a module #3472
    • 📜 json.exception.parse_error.101 only occurs outside of IDE #3467
    • json:parse_bjdata_fuzzer reaches assertion #3461
    • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT can not parse { "key" : null} #3458
    • Unable to compile when using Microsoft's _CRTDBG #3457
    • Compilation errors when including <filesystem> and using --std=c++17 or above (MinGW/Win10) #3449
    • Weird things on for statement #3447
    • 📜 Parsing error when there is a json string within a Json #3445
    • ordered_json vs json types comparison #3443
    • Error occurred when converting nlohmann::json to std::any #3428
    • I was forced to report an assertion error when copying an array of strings #3419
    • About Serialization Error invalid UTF-8 byte at index #3414
    • Comparison of NaN differs between json and float #3409
    • when i use it in C++ sserver,it it constantly show that fatal error: adl_serializer.hpp: No such file or directory #3404
    • 📜 parse error #3403
    • CMake script MAIN_PROJECT always OFF #3390
    • 📜 Parser unable to handle large floating point numbers #3389
    • Compilation error if json_pointer is used with alternative string type #3388
    • 🏗 Unit tests conversions & items fail to build (Clang <4.0/C++14 only) #3384
    • ✅ Regression test for #3070 is not being run and fails when enabled #3377
    • 🔨 Refactor unit tests to use more convenient doctest assertion macros #3365
    • An json.h issue reported in a static code analyzer #3361
    • Mixing different JSON_DIAGNOSTICS settings in separately compiled units leads to core #3360
    • json::out_of_range exception matches against lot of others while testing #3352
    • 🐧 use mipsel-openwrt-linux-g++ -std=c++11 to compile, it has some errors "error: 'snprintf' is not a member of 'std'" #3349
    • ➕ Add proper issue templates #3348
    • switch from json to ordered_json #3343
    • Json dump use to compilation errors #3339
    • Ambiguous conversion from nlohmann::basic_json<> to custom class. #3333
    • Iterator doesn't satisfy std::incrementable because post-increment may change constness #3331
    • 📜 Inconsistent handling of floating point numbers after parse() #3329
    • 📚 Documentation for ordered_json should show proper use of the parse() function. #3325
    • "type must be boolean, but is object" error thrown on non-boolean object #3319
    • Incomplete Type in request parms #3318
    • 小米 MIX4 MIUI13 bug #3316
    • 📜 json.exception.parse_error.101 when parsing data received over a socket #3313
    • 📜 Parse to custom class from unordered_json breaks on G++11.2.0 with C++20 #3312
    • try to assign dumped string to a class member varible #3300
    • includedir in pkgconfig is error if install_headers() has subdir argument. #3284
    • SHA-256 sum of json-3.10.5.tar.xz changes over time (but not the content itself) #3281
    • items() method does not follow order of json message #3278
    • Perplexing template deduction failure serialising a 3rd party type using base class #3267
    • 🖨 json.hpp 'isfinite' is not a member of 'std' also isinf; snprintf; stoull and to_string members of std #3263
    • 🏗 JSON build fails for C++ cmake #3256
    • Unexpected implicit conversion #3254
    • ➕ Add a function that checks for valid json in a C++ string #3245
    • Replace use of standard IO from error handling #3239
    • ✅ Use Catch for unit tests #3232
    • 👻 Exception thrown during initialization causes a memory leak #3215
    • ✅ Tests failing when compiling with c++20 #3207
    • ambiguous regression #3204
    • Deserialization: if class is_constructible from std::string wrong from_json overload is being selected, compilation failed #3171
    • 'clang++ ./json.hpp' with no usage: Compiler syntax problem in clang 3.7.0 (tizen :/ ) #3153
    • 🏗 build failure on upcoming gcc-12: test/src/unit-regression1.cpp:392:22: error: ambiguous overload for 'operator=' #3138
    • Applying JSON patch creates parent object #3134
    • Iterators cannot be used with range-v3 #3130
    • 👀 std::shared_ptr<T> == nlohmann::json compiles, which seem undesirable #3026
    • ✅ Error in test\download_test_data.vcxproj custom build step when compiling with Visual Studio 2019 16.7.7 msbuild on Windows 10 #2593
    • Consider putting the user-defined literals in a namespace #1682
    • Using versioned namespaces #1539
    • How can I use std::string_view as the json_key to "operator []" ? #1529
    • serialize std::variant<...> #1261

    • 🚀 Prepare 3.11.0 release #3635 (nlohmann)

    • 🛠 Fix warning #3634 (nlohmann)

    • ➕ Add license header to new files #3633 (nlohmann)

    • ➕ Add a unit test including windows.h #3631 (falbrechtskirchinger)

    • 🛠 Fixed latest build error in msvc platform #3630 (KsaNL)

    • ➕ Add regression tests for #3204 and #3333 #3629 (falbrechtskirchinger)

    • 🛠 Fix patch::add creating nonexistent parents #3628 (falbrechtskirchinger)

    • Adjust JSON Pointer examples #3622 (nlohmann)

    • Disable exceptions on ICPC #3621 (falbrechtskirchinger)

    • 🏗 build: install .pc and .cmake files to share/ #3619 (Tachi107)

    • 🛠 Fix MinGW CI failures #3618 (falbrechtskirchinger)

    • 🛠 Fix Unicode test timeout (for real this time!) #3614 (falbrechtskirchinger)

    • 👉 Use 'concurrency' in GitHub workflows #3610 (falbrechtskirchinger)

    • 👉 Use swap() by ADL #3609 (falbrechtskirchinger)

    • 🚚 Move UDLs out of the global namespace #3605 (falbrechtskirchinger)

    • Re-add value_type detection to distinguish string types #3604 (falbrechtskirchinger)

    • ➕ Add operator<<(json_pointer) #3601 (falbrechtskirchinger)

    • ➕ Add documentation for comparing json and ordered_json #3599 (nlohmann)

    • Clean up after #3581 #3596 (nlohmann)

    • ➕ Add assertion if nullptr is passed to parse function #3593 (nlohmann)

    • 📚 Minor documentation fixes #3592 (nlohmann)

    • ➕ Add versioned, ABI-tagged inline namespace and namespace macros #3590 (falbrechtskirchinger)

    • ➕ Add badge for https://repology.org/project/nlohmann-json/versions #3586 (nlohmann)

    • ➕ Add error message if test suite cannot be found #3585 (nlohmann)

    • ➕ add patch_inplace function #3581 (wolfv)

    • ✅ Enable overriding test properties and set Unicode test timeouts #3580 (falbrechtskirchinger)

    • Ignore output directory #3572 (NN---)

    • ⚡️ Optimize output vector adapter write #3569 (romainreignier)

    • Add overloads for more key types to ordered_map and fix ordered_map::erase(first, last) with first == last #3564 (falbrechtskirchinger)

    • 👉 Make certain usage patterns more prominent in the README #3557 (jez)

    • CI: fix "JSON_MultipleHeaders" option spelling #3555 (karzhenkov)

    • 📚 More documentation updates for 3.11.0 #3553 (falbrechtskirchinger)

    • Use DOCTEST_* compiler macros and suppress pragmas warning #3550 (falbrechtskirchinger)

    • Add unit test to make sure iterator_input_adapter advances iterators correctly #3548 (falbrechtskirchinger)

    • 👉 Use REUSE framework #3546 (nlohmann)

    • Use std::iterator_traits to extract iterator_category #3544 (Mike-Leo-Smith)

    • BJData dimension length can not be string_t::npos, fix #3541 #3543 (fangq)

    • 👍 Allow disabling default enum conversions #3536 (zxey)

    • ➕ Add to_json() for std::vector<bool>::reference #3534 (falbrechtskirchinger)

    • ✅ CI: Enable 32bit unit test (3) #3532 (falbrechtskirchinger)

    • 👷 Use new CI image #3528 (nlohmann)

    • 🛠 Fix ndarray dimension signedness, fix ndarray length overflow (2); add 32bit unit test #3523 (falbrechtskirchinger)

    • 📚 Small documentation fixes #3520 (nlohmann)

    • ➕ Add assertion to converting constructor #3517 (falbrechtskirchinger)

    • 🚚 CI: Remove -Wstrict-overflow #3516 (falbrechtskirchinger)

    • 🛠 Fix nlohmann/json#3513, explain is_ndarray flag #3514 (fangq)

    • Prevent ndarray size vector from recursive use, fix nlohmann/json#3503 #3505 (fangq)

    • prevent ndarray dimension vector from recusive array, nlohmann/json#3500 #3502 (fangq)

    • ⚡️ Discard optimized containers with negative counts in UBJSON/BJData (#3491,#3492,#3490) #3500 (fangq)

    • ⚡️ Update json.hpp #3499 (ivanovmp)

    • ➕ Add assertion for invariant in SAX-DOM parser #3498 (nlohmann)

    • ➕ Add more macOS builders #3485 (nlohmann)

    • 🔄 change bjdata ndarray flag to detect negative size, as part of #3475 #3479 (fangq)

    • Document fuzzer usage #3478 (nlohmann)

    • ➕ Add build step for ICPC (with fixes) #3465 (falbrechtskirchinger)

    • 📚 Complete documentation for 3.11.0 #3464 (nlohmann)

    • ⚡️ Handle invalid BJData optimized type, fix #3461 #3463 (fangq)

    • Reorganize directories #3462 (nlohmann)

    • ✅ Enable rapid testing and development on Compiler Explorer #3456 (falbrechtskirchinger)

    • 👕 cpplint 1.6.0 #3454 (nlohmann)

    • ✅ Disable regression test for #3070 on GCC <8.4 #3451 (falbrechtskirchinger)

    • 🛠 Fix C++20/gcc-12 issues (Part 2) #3446 (falbrechtskirchinger)

    • 📚 Overwork documentation #3444 (nlohmann)

    • 🛠 Fix typo in basic_json documentation #3439 (jhnlee)

    • 🛠 Exclude std::any from implicit conversion (fixes #3428) #3437 (falbrechtskirchinger)

    • Document which version introduced the macros #3431 (nlohmann)

    • 🛠 Fix constraints on from_json() for strings (fixes #3171, #3267, #3312, #3384) #3427 (falbrechtskirchinger)

    • at.md: fix typo #3426 (heinemml)

    • 👍 Implement support for string_view (attempt no. 3) #3423 (falbrechtskirchinger)

    • 🏗 CI: speedup AppVeyor builds by ~30% #3422 (falbrechtskirchinger)

    • ⏪ Restore disabled check for #3070 (except on MSVC) #3421 (falbrechtskirchinger)

    • ⚡️ Update CI image #3420 (nlohmann)

    • ➕ Add check if different version is also included #3418 (nlohmann)

    • Report the right __cplusplus value for MSVC in basic_json meta() #3417 (flagarde)

    • 🏁 CI: windows-2016 has been deprecated; remove jobs #3416 (falbrechtskirchinger)

    • Re-template json_pointer on string type #3415 (falbrechtskirchinger)

    • 🔨 Refactor unit tests to use more convenient doctest assertion macros (Part 2) #3405 (kkarbowiak)

    • 🔨 Refactor unit tests to use more convenient doctest assertion macros #3393 (kkarbowiak)

    • 👌 Improve unit testing (Part 1) #3380 (falbrechtskirchinger)

    • 🛠 Fix C++20/gcc-12 issues (Part 1) #3379 (falbrechtskirchinger)

    • ➕ Add clarification to avoid misunderstanding that cause #3360 #3378 (puffetto)

    • Fix ordered_map ctor with initializer_list (fixes #3343) #3370 (falbrechtskirchinger)

    • 🛠 Fix and update CI #3368 (falbrechtskirchinger)

    • FetchContent_MakeAvailable #3351 (nlohmann)

    • Avoid clash with Arduino defines #3338 (DarkZeros)

    • 👌 Support UBJSON-derived Binary JData (BJData) format #3336 (fangq)

    • 👉 Make iterator operator++/--(int) equality-preserving #3332 (falbrechtskirchinger)

    • ➕ Add note on parsing ordered_json #3326 (nlohmann)

    • 🛠 Fix CITATION.cff and add automatic validation of your citation metadata #3320 (fdiblen)

    • 🏁 .github/workflows/windows.yml: Add support for Visual Studio 2022 #3295 (t-b)

    • ➕ Add maintainer targets to create source archive #3289 (nlohmann)

    • 🛠 Fix a typo #3265 (fhuberts)

    • 🛠 Fix typo #3249 (rex4539)

    • ➕ Add documentation for JSON Lines #3247 (nlohmann)

    • 👌 Improve documentation InputType and IteratorType #3246 (nlohmann)

    • ✂ Remove stringstream #3244 (nlohmann)

    • fix _MSC_VER version to check for std::filesystem #3240 (gcerretani)

    • Add macros NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT and ..._NON_INTRUSIVE_WITH_DEFAULT #3143 (pketelsen)