All Versions
43
Latest Version
Avg Release Cycle
71 days
Latest Release
617 days ago

Changelog History
Page 2

  • v3.9.0 Changes

    July 27, 2020

    Full Changelog

    • Unknown Type Name clang error when using NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE #2313
    • ⚠ Clang 10.0 / GCC 10.1 warnings on disabled exceptions #2304
    • Application stalls indefinitely with message byte size 10 #2293
    • πŸ”— linker error #2292
    • βž• Add support for high-precision numbers in UBJSON encoding #2286
    • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE fails if the length of the argument is 10 #2280
    • Custom types : MACRO expansion bug #2267
    • to/from_json Failing To Convert String #2238
    • ⚠ clang 9.0 report warning: unused type alias 'size_type' [-Wunused-local-typedef] #2221
    • Enormous array created when working with map<int,T> #2220
    • Can I disable sorting of json values #2219
    • Getting Qt types to work #2217
    • Convert to Qt QVariant #2216
    • How to custom serialize same data type of vector? #2215
    • πŸ‘ json constructor does not support std::optional #2214
    • πŸ“œ Failing to Parse Valid JSON #2209
    • (De-)Serialization of std::variant with namespaces #2208
    • βž• Addint support for complex type #2207
    • array_index possible out of range #2205
    • Object deserialized as array #2204
    • Sending to a function a reference to a sub-branch #2200
    • How to Serialize derived class to JSON object? #2199
    • JSON incorrectly serialized #2198
    • Exception Unhandled out_of_range error #2197
    • msgpack serialisation : float is treated as 64bit float, not 32bit float. #2196
    • Is it possible to use compile-time type guarantees for JSON structures? #2195
    • 🐎 Question : performance against python dict #2194
    • vs2017 compile error #2192
    • Check if a key exists #2191
    • πŸ— Failed to run tests due to missing test data on builders without Internet access #2190
    • βœ… 3.8.0: unit-cbor.cpp test failures #2189
    • 'nlohmann/json.hpp' file not found #2188
    • How to send json data over the wire? #2185
    • πŸ‘ Ubuntu 16 not supporting nlohmann/json? #2184
    • .get<std::string> causing emdash errors #2180
    • Object properties should not be re-sorted alphabetically #2179
    • Custom type registration : instrusive API #2175
    • Many version of the function "void to_json(json& j, const MyStruct& struct)" #2171
    • How should strings be escaped? #2155
    • βž• Adding a value to an existing json puts it at the beginning instead of the end #2149
    • The header file is big, can we use what we need. #2134
    • 0️⃣ Changing the default format for unordered_map (or other set) #2132
    • Getting size of deserialized bson document #2131
    • implicit conversion failure #2128
    • πŸ“œ Error thrown when parsing in a subclass #2124
    • explicit conversion to string not considered for std::map keys in GCC8 #2096
    • βž• Add support for JSONC #2061
    • Library provides template arg for string_type but assumes std::string in some places #2059
    • πŸ“œ incremental parsing with sax_parser #2030
    • Question about flatten and unflatten #1989
    • πŸ“œ CBOR parser doesn't skip tags #1968
    • 🏁 Compilation failure using Clang on Windows #1898
    • πŸ— Fail to build when including json.hpp as a system include #1818
    • πŸ“œ Parsing string into json doesn't preserve the order correctly. #1817
    • [C++17] Allow std::optional to convert to nlohmann::json #1749
    • How can I save json object in file in order? #1717
    • πŸ‘Œ Support for Comments #1513
    • clang compiler: error : unknown type name 'not' #1119
    • dump() without alphabetical order #1106
    • operator T() considered harmful #958
    • Order of the elements in JSON object #952
    • How to prevent alphabetical sorting of data? #727
    • Why is an object ordering values by Alphabetical Order? #660
    • πŸ”‹ Feature request: Comments #597
    • Head Elements Sorting #543
    • Automatic ordered JSON #424
    • πŸ‘Œ Support for comments. #376
    • πŸ‘ Optional comment support. #363
    • Strip comments / Minify #294
    • maintaining order of keys during iteration #106

    • πŸ“š Update documentation #2312 (nlohmann)

    • πŸ›  Fix bug in CBOR tag handling #2308 (nlohmann)

    • added inline to NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE macro #2306 (jwittbrodt)

    • πŸ›  fixes unused variable 'ex' for #2304 #2305 (AODQ)

    • Cleanup #2303 (nlohmann)

    • βž• Add test with multiple translation units #2301 (nlohmann)

    • πŸ”€ Merge GitHub actions #2300 (nlohmann)

    • πŸ›  Fix unused parameter #2299 (nlohmann)

    • βž• Add support for high-precision numbers in UBJSON encoding #2297 (nlohmann)

    • fix eof for get_binary and get_string #2294 (jprochazk)

    • Serialisation macros: increase upper bound on number of member variables #2287 (pfeatherstone)

    • βž• add inline specifier for detail::combine #2285 (T0b1-iOS)

    • βž• Add static assertion for missing binary function in SAX interface #2282 (nlohmann)

    • Add test for target_include_directories #2279 (nlohmann)

    • πŸ‘• Clean up maintainer Makefiles and fix some linter warnings #2274 (nlohmann)

    • βž• Add option to ignore CBOR tags #2273 (nlohmann)

    • Hash function without allocation #2269 (nlohmann)

    • βž• Add ClangCL for MSVC #2268 (t-b)

    • πŸ‘‰ Makefile: Always use SED variable #2264 (t-b)

    • βž• Add Xcode 12 CI #2262 (nlohmann)

    • 🏁 Make library work with Clang on Windows #2259 (nlohmann)

    • βž• Add ordered_json specialization with ordered object keys #2258 (nlohmann)

    • βž• Add pkg-config file #2253 (ericonr)

    • πŸ›  Fix regression from #2181 #2251 (nlohmann)

    • 🏷 Tag binary values in cbor if set #2244 (matthewbauer)

    • πŸ”§ Make assert configurable via JSON_ASSERT #2242 (nlohmann)

    • βž• Add specialization of get_to #2233 (nlohmann)

    • πŸ“š Refine documentation of error_handler parameter #2232 (nlohmann)

    • Simplify conversion from/to custom types #2225 (nlohmann)

    • βœ‚ Remove unused typedefs #2224 (nlohmann)

    • Enable CMake policy CMP0077 #2222 (alexreinking)

    • βž• Add option to ignore comments in parse/accept functions #2212 (nlohmann)

    • πŸ›  Fix Clang-Tidy warnings #2211 (nlohmann)

    • πŸ‘ Simple ordered_json that works on all supported compilers #2206 (gatopeich)

    • πŸ‘‰ Use unsigned indizies for array index in json pointer #2203 (t-b)

    • βž• Add option to not rely on Internet connectivity during test stage #2202 (nlohmann)

    • Serialize floating-point numbers with 32 bit when possible (MessagePack) #2201 (nlohmann)

    • Fix consistency in function int_to_string() #2193 (dota17)

    • πŸ›  Fix issue#1275 #2181 (dota17)

    • πŸ‘ C++20 support by removing swap specialization #2176 (gracicot)

    • Feat/explicit conversion operator #1559 (theodelrieu)

  • v3.8.0 Changes

    June 14, 2020

    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)

  • v3.7.3 Changes

    November 17, 2019

    πŸš€ Release date: 2019-11-17
    SHA-256: 3b5d2b8f8282b80557091514d8ab97e27f9574336c804ee666fda673a9b59926 (json.hpp), 87b5884741427220d3a33df1363ae0e8b898099fbc59f1c451113f6732891014 (include.zip)

    Summary

    πŸš€ This release fixes a bug introduced in release 3.7.2 which could yield quadratic complexity in destructor calls. All changes are backward-compatible.

    🍱 πŸ› Bug Fixes

    • βœ‚ Removed reserve() calls from the destructor which could lead to quadratic complexity. #1837 #1838

    🍱 πŸ”₯ Deprecated functions

    πŸš€ This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • v3.7.2 Changes

    November 10, 2019

    πŸš€ Release date: 2019-11-10
    SHA-256: 0a65fcbbe1b334d3f45c9498e5ee28c3f3b2428aea98557da4a3ff12f0f14ad6 (json.hpp), 67f69c9a93b7fa0612dc1b6273119d2c560317333581845f358aaa68bff8f087 (include.zip)

    Summary

    Project bad_json_parsers tested how JSON parser libraries react on deeply nested inputs. It turns out that this library segfaulted at a certain nesting depth. This bug was fixed with this release. Now the parsing is only bounded by the available memory. All changes are backward-compatible.

    🍱 πŸ› Bug Fixes

    • πŸ›  Fixed a bug that lead to stack overflow for deeply nested JSON values (objects, array) by changing the implementation of the destructor from a recursive to an iterative approach. #832, #1419, #1835

    🍱 πŸ”¨ Further Changes

    • βž• Added WhiteStone Bolt. #1830

    🍱 πŸ”₯ Deprecated functions

    πŸš€ This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • v3.7.1 Changes

    November 06, 2019

    Full Changelog

    • std::is_constructible is always true with tuple #1825
    • Can't compile from_json(std::valarray<T>). #1824
    • json class should have a get_or member function #1823
    • NLOHMANN_JSON_SERIALIZE_ENUM macro capture's json objects by value #1822
    • πŸ“œ Parse fails when number literals start with zero #1820
    • πŸ“œ Parsing string into json doesn't preserve the order correctly. #1817
    • Weird behaviour of contains with json\_pointer #1815
    • strange behaviour with json_pointer and .contains() #1811
    • Can #1695 be re-opened? #1808
    • πŸ”€ Merge two json objects #1807
    • std::is_constructible<json, std::unordered_map<std::string, Data>> when to_json not defined #1805
    • πŸ“œ Private data on parsing #1802
    • Capturing Line and Position when querying #1800
    • πŸ“œ json error on parsing DBL_MAX from string #1796
    • De/Serialisation of vector of tupple object with nested obect need Help please #1794
    • Output json is corrupted #1793
    • variable name byte sometimes used as a #define #1792
    • Can't read json file #1791
    • Problems with special German letters #1789
    • πŸ‘Œ Support for trailing commas #1787
    • json_pointer construction bug #1786
    • ⚠ Visual Studio 2017 warning #1784
    • ciso646 header become obsolete #1782
    • Migrate LGTM.com installation from OAuth to GitHub App #1781
    • JSON comparison, contains and operator& #1778
    • pass a json object to a class contructor adds an array around the object #1776
    • 'Float' number_float_function_t template parameter name conflicts with C '#define Float float' #1775
    • πŸ— A weird building problem :-( #1774
    • What is this json_ref? #1772
    • Interoperability with other languages #1770
    • Json dump #1768
    • json_pointer<>::back() should be const #1764
    • How to get value from array #1762
    • πŸ”€ Merge two jsons #1757
    • Unable to locate nlohmann_jsonConfig.cmake #1755
    • json.hpp won;t compile VS2019 CLR/CLI app but does in console app #1754
    • [Nested Json Objects] Segmentation fault #1753
    • βœ‚ remove/replace assert with exceptions #1752
    • βž• Add array support for update() function #1751
    • Is there a reason the get\_to method is defined in include/nlohmann/json.hpp but not in single\_include/nlohmann/json.hpp? #1750
    • how to validate json object before calling dump() #1748
    • Unable to invoke accessors on json objects in lldb #1745
    • πŸ“œ Escaping string before parsing #1743
    • Construction in a member initializer list using curly braces is set as 'array' #1742
    • Read a subkey from json object #1740
    • Serialize vector of glm:vec2 #1739
    • Support nlohmann::basic_json::value with JSON_NOEXCEPTION #1738
    • πŸ“œ how to know the parse is error #1737
    • How to check if a given key exists in a JSON object #1736
    • πŸ‘ Allow The Colon Key-Value Delimiter To Have A Space Before It [@ READ ONLY] #1735
    • πŸ‘ Allow Tail { "Key": "Value" } Comma [@ READ ONLY] #1734
    • No-throw json::value() #1733
    • JsonObject.dump() #1732
    • πŸ“œ basic_json has no member "parse" #1731
    • πŸ‘» Exception "type must be string, but is array" #1730
    • json::contains usage to find a path #1727
    • How to create JSON Object from my Structures of Data and Json File from that Object #1726
    • please provide an API to read JSON from file directly. #1725
    • How to modify a value stored at a key? #1723
    • πŸ”§ CMake not correctly finding the configuration package for 3.7.0 #1721
    • πŸ“¦ name typo in the "spack package management" section of README.md #1720
    • How to add json to another json? #1718
    • How can I save json object in file in order? #1717
    • πŸ“œ json::parse() ubsan regression with v3.7.0 #1716
    • What I am doing wrong?!? #1714
    • Potential memory leak detected by Valgrind #1713
    • πŸ“œ json::parse is not thread safe? #1712
    • static analysis alarm by cppcheck #1711
    • The compilation time is slow #1710
    • not linking properly with cmake #1709
    • Error in dump() with int64_t minimum value #1708
    • Crash on trying to deserialize json string on 3ds homebrew #1707
    • Can't compile VS2019. 13 Errors #1706
    • find an object that matches the search criteria #1705
    • IntelliSense goes crazy on VS2019 #1704
    • Installing on Ubuntu 16.04 #1703
    • πŸ“œ Where is json::parse now? #1702
    • Forward header should't be amalgamated #1700
    • πŸ‘ Json support for Cmake version 2.8.12 #1699
    • Intruisive scientific notation when using .dump(); #1698
    • πŸ‘ Is there support for automatic serialization/deserialization? #1696
    • on MSVC dump() will hard crash for larger json #1693
    • puzzled implicit conversions #1692
    • Information: My project uses this awesome library #1691
    • Consider listing files explicitly instead of using GLOB #1686
    • βœ… Failing tests on MSVC with VS2019 15.9.13 x64 #1685
    • Consider putting the user-defined literals in a namespace #1682
    • πŸ”„ Change from v2 to v3. Encoding with cp1252 #1680
    • How to add Fifo_map into json using Cmake #1679
    • πŸ— include.zip should contain meson.build #1672
    • πŸ“œ [Question] How do I parse JSON into custom types? #1669
    • Binary (0x05) data type for BSON to JSON conversion #1668
    • Possible to call dump from lldb? #1666
    • Segmentation fault when linked with libunwind #1665
    • Should I include single-header after my to_json and from_json custom functions declaration? Why not? #1663
    • ⚠ Errors/Warnings in VS 2019 when Including Header File #1659
    • Return null object from object's const operator[] as well. #1658
    • Can't stream json object in to std::basic_stringstream<wchar_t> #1656
    • C2440 in vs2015 cannot convert from 'initializer-list' to nlohmann::basic_json #1655
    • Issues around get and pointers #1653
    • Non-member operator== breaks enum (de)serialization #1647
    • Valgrind: bytes in 1 blocks are definitely lost #1646
    • Convenient way to make 'basic_json' accept 'QString' as an key type as well? #1640
    • mongodb: nan, inf #1599
    • Error in adl_serializer #1590
    • Injecting class during serialization #1584
    • output_adapter not user extensible #1534
    • 🐧 Inclusion of nlohmann/json.hpp causes OS/ABI to change on Linux #1410
    • βž• Add library versioning using inline namespaces #1394
    • πŸ‘ CBOR byte string support #1129
    • How to deserialize array with derived objects #716

    • βž• Add restriction for tuple specialization of to_json #1826 (cbegue)

    • πŸ›  Fix for #1647 #1821 (AnthonyVH)

    • πŸ›  Fix issue #1805 #1806 (cbegue)

    • πŸ›  Fix some spelling errors - mostly in comments & documentation. #1803 (flopp)

    • ⚑️ Update Hedley to v11. #1799 (nemequ)

    • iteration_proxy: Fix integer truncation from std::size_t to int #1797 (t-b)

    • πŸ‘ appveyor.yml: Add MSVC 16 2019 support #1780 (t-b)

    • βœ… test/CMakeLists.txt: Use an explicit list instead of GLOB #1779 (t-b)

    • πŸ‘‰ Make json_pointer::back const (resolves #1764) #1769 (chris0x44)

    • did you mean 'serialization'? #1767 (0xflotus)

    • πŸ‘ Allow items() to be used with custom string #1765 (crazyjul)

    • πŸ›  Cppcheck fixes #1760 (Xav83)

    • πŸ›  Fix and add test's for SFINAE problem #1741 (tete17)

    • πŸ›  Fix clang sanitizer invocation #1728 (t-b)

    • βž• Add gcc 9 and compile with experimental C++20 support #1724 (t-b)

    • πŸ›  Fix int64 min issue #1722 (t-b)

    • πŸš€ release: add singleinclude and meson.build to include.zip #1694 (eli-schwartz)

  • v3.7.0 Changes

    July 28, 2019

    Full Changelog

    • How can I retrieve uknown strings from json file in my C++ program. #1684
    • contains() is sometimes causing stack-based buffer overrun exceptions #1683
    • How to deserialize arrays from json #1681
    • Compilation failed in VS2015 #1678
    • Why the compiled object file is so huge? #1677
    • From Version 2.1.1 to 3.6.1 serialize std::set #1676
    • πŸ—„ Qt deprecation model halting compiltion #1675
    • πŸ— Build For Raspberry pi , Rapbery with new Compiler C++17 #1671
    • πŸ— Build from Raspberry pi #1667
    • Can not translate map with integer key to dict string ? #1664
    • Double type converts to scientific notation #1661
    • Missing v3.6.1 tag on master branch #1657
    • πŸ‘Œ Support Fleese Binary Data Format #1654
    • Suggestion: replace alternative tokens for !, && and || with their symbols #1652
    • πŸ— Build failure test-allocator.vcxproj #1651
    • How to provide function json& to_json() which is similar as 'void to_json(json&j, const CObject& obj)' ? #1650
    • πŸ‘» Can't throw exception when starting file is a number #1649
    • to_json / from_json with nested type #1648
    • How to create a json object from a std::string, created by j.dump? #1645
    • Problem getting vector (array) of strings #1644
    • json.hpp compilation issue with other typedefs with same name #1642
    • nlohmann::adl_serializer<T,void>::to_json no matching overloaded function found #1641
    • overwrite adl_serializer<bool, void> to change behaviour #1638
    • json.SelectToken("Manufacturers.Products.Price"); #1637
    • βž• Add json type as value #1636
    • βœ… Unit conversion test error: conversion from 'nlohmann::json' to non-scalar type 'std::string_view' requested #1634
    • nlohmann VS JsonCpp by C++17 #1633
    • To integrate an inline helper function that return type name as string #1632
    • Return JSON as reference #1631
    • ⚑️ Updating from an older version causes problems with assing a json object to a struct #1630
    • 0️⃣ Can without default constructor function for user defined classes when only to_json is needed? #1629
    • Compilation fails with clang 6.x-8.x in C++14 mode #1628
    • Treating floating point as string #1627
    • πŸ“œ error parsing character Γ₯ #1626
    • 🐎 [Help] How to Improve Json Output Performance with Large Json Arrays #1624
    • Suggested link changes for reporting new issues [blob/develop/REAME.md and blob/develop/.github/CONTRIBUTING.md] #1623
    • Broken link to issue template in CONTRIBUTING.md #1622
    • Missing word in README.md file #1621
    • πŸ“¦ Package manager instructions in README for brew is incorrect #1620
    • πŸ— Building with Visual Studio 2019 #1619
    • Precedence of to_json and builtin harmful #1617
    • πŸ“š The type json is missing from the html documentation #1616
    • πŸš€ variant is not support in Release 3.6.1? #1615
    • Replace assert with throw for const operator[] #1614
    • Memory Overhead is Too High (10x or more) #1613
    • program crash everytime, when other data type incomming in json stream as expected #1612
    • πŸ‘Œ Improved Enum Support #1611
    • is it possible convert json object back to stl container ? #1610
    • βž• Add C++17-like emplace.back() for arrays. #1609
    • is_nothrow_copy_constructible fails for json::const_iterator on MSVC2015 x86 Debug build #1608
    • Reading and writing array elements #1607
    • Converting json::value to int #1605
    • I have a vector of keys and and a string of value and i want to create nested json array #1604
    • In compatible JSON object from nlohmann::json to nohman::json - unexpected end of input; expected '[', '{', or a literal #1603
    • πŸ“œ json parser crash if having a large number integer in message #1602
    • πŸ‘» Value method with undocumented throwing 302 exception #1601
    • Accessing value with json pointer adds key if not existing #1600
    • πŸ“š README.md broken link to project documentation #1597
    • Random Kudos: Thanks for your work on this! #1596
    • πŸ“œ json::parse return value and errors #1595
    • πŸŽ‰ initializer list constructor makes curly brace initialization fragile #1594
    • 🌲 trying to log message for missing keyword, difference between ["foo"] and at("foo") #1593
    • std::string and std::wstring to\_json #1592
    • I have a C structure which I need to convert to a JSON. How do I do it? Haven't found proper examples so far. #1591
    • dump_escaped possible error ? #1589
    • πŸ“œ json::parse() into a vector<string> results in unhandled exception #1587
    • push_back()/emplace_back() on array invalidates pointers to existing array items #1586
    • πŸ“œ Getting nlohmann::detail::parse_error on JSON generated by nlohmann::json not sure why #1583
    • getting error terminate called after throwing an instance of 'std::domain_error' what(): cannot use at() with string #1582
    • how i create json file #1581
    • prevent rounding of double datatype values #1580
    • πŸ“š Documentation Container Overview Doesn't Reference Const Methods #1579
    • Writing an array into a nlohmann::json object #1578
    • compilation error when using with another library #1577
    • Homebrew on OSX doesn't install cmake config file #1576
    • unflatten vs objects with number-ish keys #1575
    • πŸ“œ JSON Parse Out of Range Error #1574
    • Integrating into existing CMake Project #1573
    • πŸš€ A "thinner" source code tar as part of release? #1572
    • conversion to std::string failed #1571
    • jPtr operation does not throw #1569
    • How to generate dll file for this project #1568
    • how to pass variable data to json in c #1567
    • ⬆️ I want to achieve an upgraded function. #1566
    • How to determine the type of elements read from a JSON array? #1564
    • try_get_to #1563
    • example code compile error #1562
    • How to iterate over nested json object #1561
    • πŸ— Build Option/Separate Function to Allow to Throw on Duplicate Keys #1560
    • Compiler Switches -Weffc++ & -Wshadow are throwing errors #1558
    • ⚠ warning: use of the 'nodiscard' attribute is a C++17 extension #1557
    • Import/Export compressed JSON files #1556
    • GDB renderers for json library #1554
    • Is it possible to construct a json string object from a binary buffer? #1553
    • json objects in list #1552
    • Matrix output #1550
    • πŸ”€ Using json merge_patch on ordered non-alphanumeric datasets #1549
    • πŸ“œ Invalid parsed value for big integer #1548
    • Integrating with android ndk issues. #1547
    • βž• add noexcept json::value("key", default) method variant? #1546
    • Thank you! πŸ™Œ #1545
    • Output and input matrix #1544
    • βž• Add regression tests for MSVC #1543
    • πŸ“„ [Help Needed!] Season of Docs #1542
    • program still abort() or exit() with try catch #1541
    • πŸ‘» Have a json::type_error exception because of JSON object #1540
    • Using versioned namespaces #1539
    • Quoted numbers #1538
    • Reading a JSON file into an object #1537
    • πŸš€ Releases 3.6.0 and 3.6.1 don't build on conda / windows #1536
    • ⚠ [Clang] warning: use of the 'nodiscard' attribute is a C++17 extension [-Wc++17-extensions] #1535
    • wchar_t/std::wstring json can be created but not accessed #1533
    • json stringify #1532
    • How can I use std::string_view as the json_key to "operator []" ? #1529
    • How can I use it from gcc on RPI #1528
    • std::pair treated as an array instead of key-value in std::vector\<std::pair\<\>\> #1520
    • Excessive Memory Usage for Large Json File #1516
    • SAX dumper #1512
    • Conversion to user type containing a std::vector not working with documented approach #1511
    • πŸ“œ How to get position info or parser context with custom from_json() that may throw exceptions? #1508
    • Inconsistent use of type alias. #1507
    • Is there a current way to represent strings as json int? #1503
    • Intermittent issues with loadJSON #1484
    • πŸ‘‰ use json construct std::string #1462
    • JSON Creation #1461
    • 🐎 Substantial performance penalty caused by polymorphic input adapter #1457
    • Null bytes in files are treated like EOF #1095
    • πŸ”‹ Feature: to_string(const json& j); #916

    • πŸ‘‰ Use GNUInstallDirs instead of hard-coded path. #1673 (remyabel)

    • πŸ“¦ Package Manager: MSYS2 (pacman) #1670 (podsvirov)

    • πŸ›  Fix json.hpp compilation issue with other typedefs with same name (Issue #1642) #1643 (kevinlul)

    • βž• Add explicit conversion from json to std::string_view in conversion unit test #1639 (taylorhoward92)

    • πŸ›  Minor fixes in docs #1625 (nickaein)

    • πŸ›  Fix broken links to documentation #1598 (nickaein)

    • βž• Added to_string and added basic tests #1585 (Macr0Nerd)

    • βœ… Regression tests for MSVC #1570 (nickaein)

    • πŸ›  Fix/1511 #1555 (theodelrieu)

    • βœ‚ Remove C++17 extension warning from clang; #1535 #1551 (heavywatal)

    • 🚚 moved from Catch to doctest for unit tests #1439 (onqtam)

  • v3.6.1 Changes

    March 20, 2019

    πŸš€ Release date: 2019-03-20
    SHA-256: d2eeb25d2e95bffeb08ebb7704cdffd2e8fca7113eba9a0b38d60a5c391ea09a (json.hpp), 69cc88207ce91347ea530b227ff0776db82dcb8de6704e1a3d74f4841bc651cf (include.zip)

    Summary

    πŸ›  This release fixes a regression and a bug introduced by the earlier 3.6.0 release. All changes are backward-compatible.

    🍱 πŸ› Bug Fixes

    • πŸ›  Fixed regression of #590 which could lead to compilation errors with GCC 7 and GCC 8. #1530
    • πŸ›  Fixed a compilation error when <Windows.h> was included. #1531

    🍱 πŸ”¨ Further Changes

    • πŸ›  Fixed a warning for missing field initializers. #1527

    🍱 πŸ”₯ Deprecated functions

    πŸš€ This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • v3.6.0 Changes

    March 19, 2019

    Full Changelog

    • How can I turn a string of a json array into a json array? #1526
    • Minor: missing a std:: namespace tag #1521
    • how to precision to four decimal for double when use to_json #1519
    • πŸ“œ error parse #1518
    • Compile error: template argument deduction/substitution failed #1515
    • πŸ‘Œ Support for Comments #1513
    • std::complex type #1510
    • πŸ‘ CBOR byte string support #1509
    • βœ… Compilation error getting a std::pair<> on latest VS 2017 compiler #1506
    • πŸ“š "Integration" section of documentation needs update? #1505
    • Json object from string from a TCP socket #1504
    • ⚠ MSVC warning C4946 ("reinterpret_cast used between related classes") compiling json.hpp #1502
    • How to programmatically fill an n-th dimensional JSON object? #1501
    • Error compiling with clang and JSON\_NOEXCEPTION: need to include cstdlib #1500
    • The code compiles unsuccessfully with android-ndk-r10e #1499
    • πŸš€ Cmake 3.1 in develop, when is it likely to make it into a stable release? #1498
    • Repository is almost 450MB #1497
    • Some Help please object inside array #1494
    • How to get data into vector of user-defined type from a Json object #1493
    • how to find subelement without loop #1490
    • json to std::map #1487
    • Type in README.md #1486
    • πŸ“œ Error in parsing and reading msgpack-lite #1485
    • Compiling issues with libc 2.12 #1483
    • How do I use reference or pointer binding values? #1482
    • Compilation fails in MSVC with the Microsoft Language Extensions disabled #1481
    • Functional visit #1480
    • [Question] Unescaped dump #1479
    • Some Help please #1478
    • Global variables are stored within the JSON file, how do I declare them as global variables when I read them out in my C++ program? #1476
    • Unable to modify one of the values within the JSON file, and save it #1475
    • πŸ“š Documentation of parse function has two identical @pre causes #1473
    • πŸ— GCC 9.0 build failure #1472
    • Can we have an exists\(\) method? #1471
    • πŸ“œ How to parse multi object json from file? #1470
    • How to returns the name of the upper object? #1467
    • Error: "tuple_size" has already been declared in the current scope #1466
    • Checking keys of two jsons against eachother #1465
    • Disable installation when used as meson subproject #1463
    • Unpack list of integers to a std::vector<int> #1460
    • Implement DRY definition of JSON representation of a c++ class #1459
    • πŸ‘» json.exception.type_error.305 with GCC 4.9 when using C++ {} initializer #1458
    • API to convert an "uninitialized" json into an empty object or empty array #1456
    • πŸ“œ How to parse a vector of objects with const attributes #1453
    • NLOHMANN_JSON_SERIALIZE_ENUM potentially requires duplicate definitions #1450
    • Question about making json object from file directory #1449
    • .get() throws error if used with userdefined structs in unordered_map #1448
    • Integer Overflow (OSS-Fuzz 12506) #1447
    • If a string has too many invalid UTF-8 characters, json::dump attempts to index an array out of bounds. #1445
    • Setting values of .JSON file #1444
    • alias object_t::key_type in basic_json #1442
    • πŸ“¦ Latest Ubuntu package is 2.1.1 #1438
    • πŸ–¨ lexer.hpp(1363) '_snprintf': is not a member | Visualstudio 2017 #1437
    • Static method invites inadvertent logic error. #1433
    • EOS compilation produces "fatal error: 'nlohmann/json.hpp' file not found" #1432
    • πŸ‘Œ Support for bad commas #1429
    • πŸ‘» Please have one base exception class for all json exceptions #1427
    • ⚠ Compilation warning: 'tuple_size' defined as a class template here but previously declared as a struct template #1426
    • Which version can be used with GCC 4.8.2 ? #1424
    • Ignore nullptr values on constructing json object from a container #1422
    • πŸ‘Œ Support for custom float precision via unquoted strings #1421
    • Segmentation fault (stack overflow) due to unbounded recursion #1419
    • It is possible to call json::find with a json_pointer as argument. This causes runtime UB/crash. #1418
    • πŸ‘» Dump throwing exception #1416
    • πŸ— Build error #1415
    • Append version to include.zip #1412
    • 🏁 error C2039: '_snprintf': is not a member of 'std' - Windows #1408
    • Deserializing to vector #1407
    • Efficient way to set a json object as value into another json key #1406
    • πŸ“œ Document return value of parse() when allow_exceptions == false and parsing fails #1405
    • Unexpected behaviour with structured binding #1404
    • Which native types does get<type>() allow? #1403
    • βž• Add something like Json::StaticString #1402
    • -Wmismatched-tags in 3.5.0? #1401
    • Coverity Scan reports an UNCAUGHT_EXCEPT issue #1400
    • fff #1399
    • sorry this is not an issue, just a Question, How to change a key value in a file and save it ? #1398
    • βž• Add library versioning using inline namespaces #1394
    • πŸ— appveyor x64 builds appear to be using Win32 toolset #1374
    • Serializing/Deserializing a Class containing a vector of itself #1373
    • Retrieving array elements. #1369
    • Deserialize #1366
    • call of overloaded for push_back and operator+= is ambiguous #1352
    • got an error and cann't figure it out #1351
    • πŸ‘Œ Improve number-to-string conversion #1334
    • Implicit type conversion error on MSVC #1333
    • πŸ“¦ NuGet Package #1132

    • πŸ”„ Change macros to numeric_limits #1514 (naszta)

    • πŸ›  fix GCC 7.1.1 - 7.2.1 on CentOS #1496 (lieff)

    • ⚑️ Update Buckaroo instructions in README.md #1495 (njlr)

    • πŸ›  Fix gcc9 build error test/src/unit-allocator.cpp (Issue #1472) #1492 (stac47)

    • πŸ›  Fix typo in README.md #1491 (nickaein)

    • Do proper endian conversions #1489 (andreas-schwab)

    • πŸ›  Fix documentation #1477 (nickaein)

    • Implement contains() member function #1474 (nickaein)

    • βž• Add operator/= and operator/ to construct a JSON pointer by appending two JSON pointers #1469 (garethsb-sony)

    • Disable Clang -Wmismatched-tags warning on tuple_size / tuple_element #1468 (past-due)

    • Disable installation when used as meson subproject. #1463 #1464 (elvisoric)

    • πŸ“„ docs: README typo #1455 (wythe)

    • βœ‚ remove extra semicolon from readme #1451 (Afforix)

    • attempt to fix #1445, flush buffer in serializer::dump_escaped in UTF8_REJECT case. #1446 (scinart)

    • πŸ‘‰ Use C++11 features supported by CMake 3.1. #1441 (iwanders)

    • ⚠ :rotating_light: fixed unused variable warning #1435 (pboettch)

    • allow push_back() and pop_back() calls on json_pointer #1434 (pboettch)

    • βž• Add instructions about using nlohmann/json with the conda package manager #1430 (nicoddemus)

    • ⚑️ Updated year in README.md #1425 (hijxf)

    • πŸ›  Fixed broken links in the README file #1423 (skypjack)

    • πŸ›  Fixed broken links in the README file #1420 (skypjack)

    • πŸ“„ docs: typo in README #1417 (wythe)

    • πŸ›  Fix x64 target platform for appveyor #1414 (nickaein)

    • πŸ‘Œ Improve dump_integer performance #1411 (nickaein)

    • πŸ— buildsystem: relax requirement on cmake version #1409 (yann-morin-1998)

    • CMake: Optional Install if Embedded #1330 (ax3l)

  • v3.5.0 Changes

    December 21, 2018

    Full Changelog

    • Copyconstructor inserts original into array with single element #1397
    • Get value without explicit typecasting #1395
    • πŸ“œ Big file parsing #1393
    • ⚠ some static analysis warning at line 11317 #1390
    • βž• Adding Structured Binding Support #1388
    • map<json::value_t, string> exhibits unexpected behavior #1387
    • Error Code Return #1386
    • using unordered_map as object type #1385
    • float precision #1384
    • πŸ‘» [json.exception.type_error.316] invalid UTF-8 byte at index 1: 0xC3 #1383
    • Inconsistent Constructor (GCC vs. Clang) #1381
    • #define or || #1379
    • How to iterate inside the values ? #1377
    • items() unable to get the elements #1375
    • conversion json to std::map doesn't work for types <int, double> #1372
    • πŸ— A minor issue in the build instructions #1371
    • Using this library without stream ? #1370
    • Writing and reading BSON data #1368
    • Retrieving array elements from object type iterator. #1367
    • json::dump() silently crashes if items contain accented letters #1365
    • ⚠ warnings in MSVC (2015) in 3.4.0 related to bool... #1364
    • Cant compile with -C++17 and beyond compiler options #1362
    • json to concrete type conversion through reference or pointer fails #1361
    • the first attributes of JSON string is misplaced #1360
    • Copy-construct using initializer-list converts objects to arrays #1359
    • 0️⃣ About value(key, default_value) and operator[](key) #1358
    • πŸ–¨ Problem with printing json response object #1356
    • Serializing pointer segfaults #1355
    • Read long long int data as a number. #1354
    • eclipse oxygen in ubuntu get<size_t> is ambiguous #1353
    • πŸ— Can't build on Visual Studio 2017 v15.8.9 #1350
    • πŸ“œ cannot parse from string? #1349
    • Error: out_of_range #1348
    • expansion pattern 'CompatibleObjectType' contains no argument packs, with CUDA 10 #1347
    • ⚑️ Unable to update a value for a nested(multi-level) json file #1344
    • Fails to compile when std::iterator_traits is not SFINAE friendly. #1341
    • EOF flag not set on exhausted input streams. #1340
    • πŸ”€ Shadowed Member in merge_patch #1339
    • Periods/literal dots in keys? #1338
    • Protect macro expansion of commonly defined macros #1337
    • πŸ“œ How to validate an input before parsing? #1336
    • 🌲 Non-verifying dump() alternative for debugging/logging needed #1335
    • Json Libarary is not responding for me in c++ #1332
    • Question - how to find an object in an array #1331
    • Nesting additional data in json object #1328
    • can to_json() be defined inside a class? #1324
    • CodeBlocks IDE can't find json.hpp header #1318
    • Change json_pointer to provide an iterator begin/end/etc, don't use vectors, and also enable string_view #1312
    • Xcode - adding it to library #1300
    • unicode: accept char16_t, char32_t sequences #1298
    • unicode: char16_t* is compiler error, but char16_t[] is accepted #1297
    • 🐳 Dockerfile Project Help Needed #1296
    • Comparisons between large unsigned and negative signed integers #1295
    • CMake alias to nlohmann::json #1291
    • πŸš€ Release zips without tests #1285
    • 🚚 Suggestion to improve value() accessors with respect to move semantics #1275
    • separate object_t::key_type from basic_json::key_type, and use an allocator which returns object_t::key_type #1274
    • Is there a nice way to associate external values with json elements? #1256
    • βœ‚ Delete by json_pointer #1248
    • πŸ”¦ Expose lexer, as a StAX parser #1219
    • Subclassing json() & error on recursive load #1201
    • Check value for existence by json_pointer #1194

    • πŸ”‹ Feature/add file input adapter #1392 (dumarjo)

    • πŸ‘ Added Support for Structured Bindings #1391 (pratikpc)

    • πŸ”— Link to issue #958 broken #1382 (kjpus)

    • readme: fix typo #1380 (manu-chroma)

    • recommend using explicit from JSON conversions #1363 (theodelrieu)

    • πŸ›  Fix merge_patch shadow warning #1346 (ax3l)

    • πŸ‘ Allow installation via Meson #1345 (mpoquet)

    • Set eofbit on exhausted input stream. #1343 (mefyl)

    • βž• Add a SFINAE friendly iterator_traits and use that instead. #1342 (dgavedissian)

    • πŸ›  Fix EOL Whitespaces & CMake Spelling #1329 (ax3l)

  • v3.4.0 Changes

    October 30, 2018

    πŸš€ Release date: 2018-10-30
    SHA-256: 63da6d1f22b2a7bb9e4ff7d6b255cf691a161ff49532dcc45d398a53e295835f (json.hpp), bfec46fc0cee01c509cf064d2254517e7fa80d1e7647fea37cf81d97c5682bdc (include.zip)

    Summary

    πŸš€ This release introduces three new features:

    • BSON (Binary JSON) is next to CBOR, MessagePack, and UBJSON the fourth binary (de)serialization format supported by the library.
    • Adjustable error handlers for invalid Unicode allows to specify the behavior when invalid byte sequences are serialized.
    • Simplified enum/JSON mapping with a macro in case the default mapping to integers is not desired.

    πŸ“œ Furthermore, some effort has been invested in improving the parse error messages. Besides, a few bugs have been fixed. All changes are backward-compatible.

    🍱 ✨ New Features

    • The library can read and write a subset of BSON (Binary JSON). All data types known from JSON are supported, whereas other types more tied to MongoDB such as timestamps, object ids, or binary data are currently not implemented. See the README for examples. #1244 #1320
    • The behavior when the library encounters an invalid Unicode sequence during serialization can now be controlled by defining one of three Unicode error handlers : (1) throw an exception (default behavior), (2) replace invalid sequences by the Unicode replacement character (U+FFFD), or (3) ignore/filter invalid sequences. See the documentation of the dump function for examples. #1198 #1314
    • To easily specify a user-defined enum/JSON mapping , a macro NLOHMANN_JSON_SERIALIZE_ENUM has been introduced. See the README section for more information. #1208 #1323

    🍱 πŸ› Bug Fixes

    • πŸ›  fixed truncation #1286 #1315
    • πŸ›  fixed an issue with std::pair #1299 #1301
    • πŸ›  fixed an issue with std::variant #1292 #1294
    • πŸ›  fixed a bug in the JSON Pointer parser

    🍱 ⚑️ Improvements

    • πŸ“œ The diagnosis messages for parse errors have been improved: error messages now indicated line/column positions where possible (in addition to a byte count) and also the context in which the error occurred (e.g., "while parsing a JSON string"). Example: error parse error at 2: syntax error - invalid string: control character must be escaped; last read: '<U+0009>' is now reported as parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0009 (HT) must be escaped to \u0009 or \t; last read: '<U+0009>'. #1280 #1288 #1303

    🍱 πŸ”¨ Further Changes

    • πŸ‘Œ improved Meson documentation #1305
    • πŸ›  fixed some more linter warnings #1280
    • πŸ›  fixed Clang detection for third-party Google Benchmark library #1277

    🍱 πŸ”₯ Deprecated functions

    πŸš€ This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):