json v3.8.0 Release Notes

Release Date: 2020-06-14 // almost 4 years ago
  • Full Changelog

    • sorry delete this issue, i'm stupid #2187
    • Append to a std::nlohmann::json type #2186
    • Some troubles to compile the last revision #2177
    • ​#​ Top level CMakeLists.txt​ ​project​(FOO) ... 👉 ​option​(FOO_USE_EXTERNAL_JSON ​"Use an external JSON library"​ ​OFF​) ... ​add_subdirectory​(thirdparty) ... ​add_library​(foo ...) ... ​#​ Note that the namespaced target will always be available regardless of the​ ​#​ import method​ 🔗 ​target_link_libraries​(foo ​PRIVATE​ nlohmann_json::nlohmann_json) #2170
    • https://www.github.com/nlohmann/json/tree/develop/include%2Fnlohmann%2Fjson\_fwd.hpp #2169
    • templated from_json of non primitive types causes gcc error #2168
    • ⚠ few warnings/errors in copy assignment #2167
    • ⬆️ Different output when upgrading from clang 9 to clang 10 #2166
    • 🏗 Cannot build with VS 2019 / C++17 #2163
    • Q: When I received an illegal string,How the program knows? #2162
    • Problem while reading a json file #2161
    • converting std::chrono::system_clock::time_point to json. #2159
    • 📜 how to parse vector<struct> format #2157
    • nlohmann::json and =nullptr #2156
    • ✅ test-cbor fails #2154
    • Accessing array inside array syntax? #2151
    • Best way to catch errors when querying json #2150
    • JSON Data Mapping Key-Value from other Key-Value #2148
    • Conflicts with std <any> compiling with GCC 10 #2146
    • Incorrect CMake FetchContent example #2142
    • Help for a Beginner? #2141
    • Read Json from File #2139
    • How to feed a predefined integer value into json string #2138
    • getting json array inside json object #2135
    • ➕ Add .contains example to doc #2133
    • Is it safe to return string.c_str() received from get()? #2130
    • GCC 10: Compilation error when including any before including json header in C++17 mode #2129
    • Intersection of two json files #2127
    • App crashes when dump method called for non ascii chars. #2126
    • iterator based erase method #2122
    • quick and convenient api to get/set nested json values #2120
    • assigning nullptr to std::string #2118
    • ⚠ usless_cast warnings with gcc 9.3 and 10.1 (C++17) #2114
    • ⚠ clang 10 warning #2113
    • Possible incorrect _MSC_VER reference #2112
    • ⚠ warning under gcc 10.1 #2110
    • 🗄 Wdeprecated-declarations from GCC v10.1.0 #2109
    • Global std::vector from json #2108
    • ✅ heap-buffer-overflow when using nlohmann/json, ASAN, and gtest #2107
    • 👻 exception 0x770DC5AF when i read an special char in json file #2106
    • 📜 json::parse() fails to parse a dump(2,' ') output, yet does successfully parse dump() #2105
    • ✅ run test-udt error in MSVC 19.16.27034.0 #2103
    • Unable to dump to stringstream #2102
    • Can't ad an object in another objet #2101
    • Implicit conversion causes "cannot use operator[] with a string argument with string" #2098
    • C++20: char8_t #2097
    • Compilation issues when included in project #2094
    • string value with null character causes infinite loop #2093
    • corrupted size vs. prev_size (aborted) #2092
    • Get string field content without return std::string copy #2091
    • JSON Comments (JSON 5) #2090
    • ✂ Remove #include <ciso646> #2089
    • JSON library as a git submodule #2088
    • 🍎 Apple Clang 11.0.3 on MacOS Catalina 10.15.4 not compiling #2087
    • Value function return empty object even if it exist #2086
    • Cannot debug but Run works #2085
    • Question about serialization. #2084
    • How to include in an external project #2083
    • ✅ Missing tests for binary values #2082
    • 0️⃣ How to override default string serialization? #2079
    • Can't have a json type as a property in an arbitrary type #2078
    • 🆕 New release? #2075
    • 📚 CMake FetchContent > Updating the documentation? #2073
    • How to convert STL Vector (of user defined type) to Json #2072
    • how to make an array of objects #2070
    • ‘__int64’ was not declared #2068
    • 👻 [json.exception.type_error.317] cannot serialize binary data to text JSON #2067
    • Unexpected end of input; expected '[', '{', or a literal #2066
    • Json structure can be nested? #2065
    • 🐛 Bug: returning reference to local temporary object #2064
    • 👍 Allow to use non strict parsing #2063
    • Crashing on json::at #2062
    • 📜 How to convert a const std::vector<char8_t> message to a json, to be able to parse it and extract information from it? Can you point to any examples? #2058
    • Nice library #2057
    • ⚡️ json.hpp:15372:22: error: expected unqualified-id if (not std::isfinite(x)): Started getting this bug after updating my XCode #2056
    • Confused as how I can extract the values from the JSON object. #2055
    • ⚠ Warnings with GCC 10 #2052
    • ⚠ Warnings with Clang 10 #2049
    • ⚡️ Update doctest #2048
    • Unclear error message: "cannot use operator[] with a string argument with array" #2047
    • Serializing std::variant<T, std::vector<T>> #2045
    • 📜 Crash when parse big jsonfile #2042
    • How to check if a key exists without silently generating null objects on the path #2041
    • Crash when traversing over items() of temporary json objects #2040
    • 📜 How to parse multiple line value ? #2039
    • SAX API uses unsigned std::size_t but -1 if element size is not known; #2037
    • 📜 How to parse big decimal data #2036
    • how use template <typename T> struct adl_serializer #2035
    • auto iterator returned by find to handle value depending if is string or numeric. #2032
    • pass find returned iterator to numeric variable. #2031
    • 📜 Parse error on valid json file #2029
    • Is here any elegant way to combine serialization and deserialization code? #2028
    • Notes about dump function #2027
    • 🐧 Different JSON printouts for empty dictionary on Linux and Mac. #2026
    • easier way to get exception reason out of json_sax_dom_callback_parser without exceptions #2024
    • Using fifo_map with base class and derived class #2023
    • Error reading JSON File #2022
    • 📜 Parse causing crash on android. Cannot catch. #2021
    • Extra backslashes in nested json #2020
    • 🔀 How to create patch for merge_patch input ? #2018
    • CppUTest/include/CppUTestExt/MockSupport.h:40: error: default argument for ‘MockFailureReporter* failureReporterForThisCall’ has type ‘void*’ #2017
    • including another file #2016
    • GNU PREREQ Error with gcc 9.3.0 #2015
    • 📜 Parse error: json.exception.parse_error.101 - invalid string: ill-formed UTF-8 byte #2014
    • ➕ Add more flexibility to basic_json's ObjectType (and ArrayType) #2013
    • afl persistent mode #2012
    • 👷 Compiler Errors under VS2019 in Appveyor CI #2009
    • Another compilation failure with Visual Studio #2007
    • Implicit cast to std::string broken again with VS2019 16.5.0 #2006
    • error: no matching member function for call to 'AddRaw' #2005
    • When I re-create an object again after the network request, an error is reported #2003
    • 🔀 How to merge (and not replace) different Json::Value objects in jsoncpp #2001
    • scalar transforms to list #2000
    • Dump JSON containing multibyte characters #1999
    • 🏗 Build error when modify value #1998
    • How do i include a vector of pointers in my json? #1997
    • Compiler error wrt incomplete types changed in gcc8.3.0-26 #1996
    • NaN-like comparison behavior of discarded is inconvenient #1988
    • 📦 Maintaining JSON package in my CMake #1987
    • reading int number and string number #1986
    • 🏗 Build error: keyword is hidden by macro definition! #1985
    • JSON patch diff for op=add formation is not as per standard (RFC 6902) #1983
    • 👻 json_pointer.contains() exception is incorrectly raised #1982
    • Error with non existing key #1981
    • Closed #1978
    • Where is the library built and what is the name? #1977
    • 🏗 The cmake_import example does not build #1976
    • Dumping core when reading invalid file #1975
    • Abort in dump() method #1973
    • Unclear docs regarding parser_callback_t callbacks #1972
    • Possible memory leak on push_back #1971
    • Is it possible to get a safe mutable reference/pointer to internal variant used in nlohmann json? #1970
    • Getting a flatten json to map<string, string> #1957
    • 👻 forced type conversion or lexical cast without exception. #1955
    • ➕ Add json_view type support to avoid excessive copying #1954
    • ➕ Adding "examples" section for real-life usages #1953
    • ➕ Add nlohmann::json::key_type #1951
    • cannot use operator[] with a string argument with string #1949
    • std::ifstream >> json error #1948
    • ⚡️ Cannot update json data in an iterator? #1947
    • 🏗 How can i build this library in VS 2017? #1943
    • json_pointer.contains() exceptions when path not found #1942
    • Nested objects serialize/deserialize #1941
    • ⚠ Compile warning on architectures that are not x86 #1939
    • 🔖 Version of nlohmann-json-dev in debian packages #1938
    • Create a json object for every cycle #1937
    • How to get the object name? #1936
    • Reserve and resize function for basic json #1935
    • 📜 How to use json parse in tsl::ordread_map? #1934
    • 👍 C++14 support is not enabled with msvc2015 #1932
    • Need help with to_json for derived class, keep getting "cannot use operator" #1931
    • How to handle std::vector<std::uint8_t> #1930
    • Heap corruption issue #1929
    • ➕ Add std::wistream support. #1928
    • This i can write and read any file thanks #1927
    • How can I get this simple example working? #1926
    • 👀 emplace_back does not seems to work with the int 0 #1925
    • 🚀 Why nlohmann does not release memory #1924
    • 📜 Is it possible to have template json::parse with noexcept specifier? #1922
    • JSON to wstring? #1921
    • 🏗 GCC 10 tests build failure #1920
    • Size of binary json representations #1919
    • Accessing strings (for example in keys or values) without having the lib create a copy of it. #1916
    • 📚 operator== documentation should show how to apply custom comparison function #1915
    • 👍 char8_t and std::u8string support #1914
    • 🗄 std::is_pod is deprecated in C++20 #1913
    • Incomplete types reported by (experimental) GCC10 #1912
    • ⚠ Compile warnings on MSVC 14.2 #1911
    • 📜 How to parse json file with type composition of std::optional and std::variant #1910
    • why root_schema be implemented as unique_ptr in json-validator.cpp,could I use it as shared_ptr? #1908
    • compile error in gcc-6.3.0 #1906
    • Scalar constexpr is odr-used when used as json initializer #1905
    • install Slack app #1904
    • typo in a comment #1903
    • Watch JSON variables in Debug #1902
    • does Json sdk cares about dfc dfd utf8 issue? #1901
    • 👍 Allow multiple line string value in JSON #1897
    • Writing map to json file #1896
    • 📚 Small documentation mistake #1895
    • 📜 why static function parse cann't find in visual studio 2019 #1894
    • Best way to handle json files with missing key value pairs. #1893
    • accessing json object as multimap #1892
    • 📜 What is the best way to parse vec3s into glm::vec3 #1891
    • Get array of items without using vector #1890
    • 🍎 Build errors (clang 11.0.0) on macOS 10.15.2 #1889
    • Multiple arrays to vectors help #1888
    • 📜 json::parse(begin, end) parse error on first character using uchar* #1887
    • 🆓 issue in free() #1886
    • is_number_unsigned() returns false for positive integers (int or 0 or 1 literals) #1885
    • MSVC build failure with /Zc:__cplusplus and C++17 #1883
    • RFC 6901 op:replace & arrays #1882
    • Problem with serialization of my custom template doubly-linked list #1881
    • is_array() is True, but raise 'cannot use operator[] for object iterators' #1880
    • Serialize dynamic array #1879
    • Serialization of struct object. #1877
    • ⚠ warning:c4503 #1875
    • Why are flattened empty objects/arrays not representable? #1874
    • Container Overflow (ASAN) when using operator >> on an ifs #1873
    • Sub-array to vector or map object? #1870
    • 🚧 WIP: QT (cute) type supports #1869
    • Compiler flags to disable features and shrink code size #1868
    • null strings #1867
    • Struct with array of struct and __attribute__((packed)) #1866
    • Best way to extract numbers in the string? #1865
    • Displaying \?\Volume{guid} from string to json giving error #1864
    • not working when compiling as x86 #1863
    • 🌲 Skipping evaluation of log line expressions with a macro, is it possible? #1862
    • ⚠ Suppress warnings #1861
    • 🏁 conflit with g++ compile option -mwindows #1860
    • How to serialize nested classes to semi-flat JSON object? #1859
    • Memory Requirement for large json file #1858
    • Query a binary format (BSON, CBOR, MessagePack, UBJSON) #1856
    • 📚 Documentation on operator[] behavior with missing keys #1855
    • 📜 Problem in converting string into JSON; Can't parse successfully. #1854
    • json.at_or_default(key, defaultval) #1852
    • 📚 please improve the enum conversion documentation (my example gist provided) #1851
    • Default value returned on ValueType nlohmann::basic_json::value (const typename object_t::key_type& key, const ValueType& default_value) #1850
    • Accounting for arbitrary precision numerical literals #1849
    • While trying to make a simple array, I get a nested array instead #1848
    • 📜 How to reuse the parser and serializer intermediate storage? #1847
    • Too much content in json.hpp leads to slow compilation #1845
    • Cannot read some data in json file #1843
    • Precompiled JSON library? #1842
    • Please change assert into throw(maybe) in line 17946 #1841
    • JSON for modern C++ ECCN information #1840
    • 🏗 CI: reduce build time for Travis valgrind #1836
    • How do I traverse a json object and add new elements into the hierarchy #1834
    • Invalid UTF-8 byte at index 1: 0x65 #1831
    • Serialize big data in json #1828
    • 👻 Backslash '\' in value causes exception #1827
    • 0️⃣ from_json for non default constructible class with dependency injection #1819
    • ✅ Semi-frequent timeouts in test-unicode_all with 3.6.1 (aarch64) #1816
    • input_adapter not user extensible #1813
    • crash at json::destroy on android #1812
    • 🔊 Logs are repeating while cmake #1809
    • ➕ Add a the possibility to add dynamic json objects #1795
    • 🚀 Unnecessary test data file in the release #1790
    • ➕ Add support for parse stack limiting #1788
    • ⚠ GCC -Wuseless-cast warnings #1777
    • compilation issue with NVCC 9.0 #1773
    • Unexpected behavior with fifo_map json when copy and append #1763
    • 📜 Parse error #1761
    • Assignment (using value()) to nonexistent element behaves differently on Xcode 8 vs Xcode 10 #1758
    • Readme out of date #1756
    • cmake_* tests don't use the build system's compiler #1747
    • Static assertions for template type properties required #1729
    • 👉 Use float and possibly half in json::to_cbor #1719
    • json::from_cbor does not respect allow_exceptions = false when input is string literal #1715
    • /Zc:__cplusplus leads to C2416 #1695
    • unflatten vs objects with number-ish keys #1575
    • 🚀 A "thinner" source code tar as part of release? #1572
    • Repository is almost 450MB #1497
    • 🐎 Substantial performance penalty caused by polymorphic input adapter #1457
    • 🚚 Move tests to a separate repo #1235
    • ⬇️ reduce repos size #1185
    • 🚀 CMakeLists.txt in release zips? #1184
    • Minimal branch? #1066
    • 🚚 Move test blobs to a submodule? #732
    • ✅ [Question] When using this as git submodule, will it clone the whole thing include test data and benchmark? #620
    • Need to improve ignores.. #567
    • Minimal repository (current size very large) #556
    • 👯 For a header-only library you have to clone 214MB #482
    • 17 MB / 90 MB repo size!? #96

    • Improve parse_ubjson_fuzzer #2182 (tanuj208)

    • ➕ Add input adapter tests #2178 (nlohmann)

    • 🛠 Fix warnings #2174 (nlohmann)

    • 🛠 Fix PR#1006 #2158 (dota17)

    • 🛠 Fix issue#1972 #2153 (dota17)

    • ⚡️ Update URLs to HTTPS #2152 (TotalCaesar659)

    • 🛠 Fix Issue#1813: user defined input adapters #2145 (FrancoisChabot)

    • 🛠 Fix issue#1939: Cast character to unsigned for comparison #2144 (XyFreak)

    • 🛠 Fix issue#2142: readme: fix typo in CMake FetchContent example #2143 (quentin-dev)

    • Respect allow_exceptions=false for binary formats #2140 (nlohmann)

    • 🛠 Fix issue 2112 #2137 (dota17)

    • ➕ Add bleeding edge GCC to CI #2136 (aokellermann)

    • Clean up implementation of binary type #2125 (nlohmann)

    • 🛠 Fixed a compilation error in MSVC #2121 (gistrec)

    • 👷 Overwork CI #2119 (nlohmann)

    • 🛠 Fix warnings from Clang 10 and GCC 9 #2116 (nlohmann)

    • Do not include <ciso646> when using C++17 #2115 (nlohmann)

    • 🛠 Fix issue#2086: disallow json::value_t type parameter in value() #2104 (dota17)

    • 🛠 Fix Coveralls integration #2100 (nlohmann)

    • ➕ Add tests for binary values #2099 (nlohmann)

    • ✅ Use external test data #2081 (nlohmann)

    • ✂ Remove Doozer CI #2080 (nlohmann)

    • 🛠 Fix README.md. Missing ``` #2077 (ArthurSonzogni)

    • 🛠 Fix error message about invalid surrogate pairs #2076 (rmisev)

    • ➕ Add CMake fetchcontent documentation and tests #2074 (ArthurSonzogni)

    • Properly pass serialize_binary to dump function #2071 (nlohmann)

    • 🛠 Fix returning reference to local temporary object #2069 (nlohmann)

    • ⚡️ updated wandbox link #2060 (alexandermyasnikov)

    • 🛠 Fix bug in diff function #2054 (nlohmann)

    • 🛠 Fix GCC compiler warnings #2053 (nlohmann)

    • 🛠 Fix Clang compiler warnings #2051 (nlohmann)

    • ⚡️ Update doctest to 2.3.7 #2050 (nlohmann)

    • 🛠 Fix issue#1719 #2044 (dota17)

    • ➕ Add missing testcase about NaN in unit-constructor1.cpp #2043 (dota17)

    • Templatize basic_json constructor from json_ref #2034 (ArtemSarmini)

    • 🗄 Replace deprecated std::is_pod #2033 (nlohmann)

    • Fixes #1971 (memory leak in basic_json::push_back) #2025 (ArtemSarmini)

    • 🛠 fix #1982:json_pointer.contains() exception is incorrectly raised #2019 (dota17)

    • ⚡️ Update LICENSE.MIT #2010 (magamig)

    • ✅ PR for #2006 to test in AppVeyor. #2008 (garethsb)

    • ➕ Added wsjcpp.yml #2004 (sea-kg)

    • 🛠 fix error 'setw' is not a member of 'std' in Wandbox example #2002 (alexandermyasnikov)

    • catch exceptions for json_pointer : ..../+99 #1990 (dota17)

    • Modify the document about operator== #1984 (dota17)

    • Rename argument array_index to array_indx in json_pointer methods #1980 (linev)

    • README: Fix string representation of dumped json #1979 (alex-weej)

    • 🛠 fix warnings in serializer.hpp for VS2019 #1969 (dota17)

    • 🛠 Fix C26451 warnnings in to_chars.hpp #1967 (dota17)

    • appveyor.yml: Compile and test with latest version for __cplusplus ma… #1958 (t-b)

    • 🛠 Fix typo in examples #1956 (dota17)

    • templated input adapters #1950 (FrancoisChabot)

    • 🚀 Update README.md : add a FAQ about memory release #1933 (dota17)

    • ✏️ Some typos #1923 (Coeur)

    • 🛠 Fix link to parse function in README #1918 (kastiglione)

    • ⚡️ Readme: Updated links to hunter repo & docs #1917 (jothepro)

    • ➕ Adds instruction for using Build2's package manager #1909 (Klaim)

    • ⚡️ Update README.md #1907 (pauljurczak)

    • 🛠 Fix warning: ignoring return value #1871 (sonulohani)

    • 📄 docs: add central repository as conan source to readme #1857 (gocarlos)

    • 📦 README: Package in MSYS2 renamed to nlohmann-json #1853 (podsvirov)

    • 🛠 Fix msvc warnings #1846 (MBalszun)

    • ⚡️ Update tests that generate CMake projects to use main project's C++ compiler #1844 (Tridacnid)

    • 👉 make CMake's version config file architecture-independent #1746 (uhoreg)

    • ➕ Add binary type support to all binary file formats, as well as an internally represented binary type #1662 (OmnipotentEntity)