1 | ArduinoJson: change log
|
---|
2 | =======================
|
---|
3 |
|
---|
4 | v5.1.1
|
---|
5 | ------
|
---|
6 |
|
---|
7 | * Removed `String` duplication when one replaces a value in a `JsonObject` (PR #232 by @ulion)
|
---|
8 |
|
---|
9 | v5.1.0
|
---|
10 | ------
|
---|
11 |
|
---|
12 | * Added support of `long long` (issue #171)
|
---|
13 | * Moved all build settings to `ArduinoJson/Configuration.hpp`
|
---|
14 |
|
---|
15 | **BREAKING CHANGE**:
|
---|
16 | If you defined `ARDUINOJSON_ENABLE_STD_STREAM`, you now need to define it to `1`.
|
---|
17 |
|
---|
18 | v5.0.8
|
---|
19 | ------
|
---|
20 |
|
---|
21 | * Made the library compatible with [PlatformIO](http://platformio.org/) (issue #181)
|
---|
22 | * Fixed `JsonVariant::is<bool>()` that was incorrectly returning false (issue #214)
|
---|
23 |
|
---|
24 | v5.0.7
|
---|
25 | ------
|
---|
26 |
|
---|
27 | * Made library easier to use from a CMake project: simply `add_subdirectory(ArduinoJson/src)`
|
---|
28 | * Changed `String` to be a `typedef` of `std::string` (issues #142 and #161)
|
---|
29 |
|
---|
30 | **BREAKING CHANGES**:
|
---|
31 | - `JsonVariant(true).as<String>()` now returns `"true"` instead of `"1"`
|
---|
32 | - `JsonVariant(false).as<String>()` now returns `"false"` instead of `"0"`
|
---|
33 |
|
---|
34 | v5.0.6
|
---|
35 | ------
|
---|
36 |
|
---|
37 | * Added parameter to `DynamicJsonBuffer` constructor to set initial size (issue #152)
|
---|
38 | * Fixed warning about library category in Arduino 1.6.6 (issue #147)
|
---|
39 | * Examples: Added a loop to wait for serial port to be ready (issue #156)
|
---|
40 |
|
---|
41 | v5.0.5
|
---|
42 | ------
|
---|
43 |
|
---|
44 | * Added overload `JsonObjectSuscript::set(value, decimals)` (issue #143)
|
---|
45 | * Use `float` instead of `double` to reduce the size of `JsonVariant` (issue #134)
|
---|
46 |
|
---|
47 | v5.0.4
|
---|
48 | ------
|
---|
49 |
|
---|
50 | * Fixed ambiguous overload with `JsonArraySubscript` and `JsonObjectSubscript` (issue #122)
|
---|
51 |
|
---|
52 | v5.0.3
|
---|
53 | ------
|
---|
54 |
|
---|
55 | * Fixed `printTo(String)` which wrote numbers instead of strings (issue #120)
|
---|
56 | * Fixed return type of `JsonArray::is<T>()` and some others (issue #121)
|
---|
57 |
|
---|
58 | v5.0.2
|
---|
59 | ------
|
---|
60 |
|
---|
61 | * Fixed segmentation fault in `parseObject(String)` and `parseArray(String)`, when the
|
---|
62 | `StaticJsonBuffer` is too small to hold a copy of the string
|
---|
63 | * Fixed Clang warning "register specifier is deprecated" (issue #102)
|
---|
64 | * Fixed GCC warning "declaration shadows a member" (issue #103)
|
---|
65 | * Fixed memory alignment, which made ESP8266 crash (issue #104)
|
---|
66 | * Fixed compilation on Visual Studio 2010 and 2012 (issue #107)
|
---|
67 |
|
---|
68 | v5.0.1
|
---|
69 | ------
|
---|
70 |
|
---|
71 | * Fixed compilation with Arduino 1.0.6 (issue #99)
|
---|
72 |
|
---|
73 | v5.0.0
|
---|
74 | ------
|
---|
75 |
|
---|
76 | * Added support of `String` class (issues #55, #56, #70, #77)
|
---|
77 | * Added `JsonBuffer::strdup()` to make a copy of a string (issues #10, #57)
|
---|
78 | * Implicitly call `strdup()` for `String` but not for `char*` (issues #84, #87)
|
---|
79 | * Added support of non standard JSON input (issue #44)
|
---|
80 | * Added support of comments in JSON input (issue #88)
|
---|
81 | * Added implicit cast between numerical types (issues #64, #69, #93)
|
---|
82 | * Added ability to read number values as string (issue #90)
|
---|
83 | * Redesigned `JsonVariant` to leverage converting constructors instead of assignment operators (issue #66)
|
---|
84 | * Switched to new the library layout (requires Arduino 1.0.6 or above)
|
---|
85 |
|
---|
86 | **BREAKING CHANGES**:
|
---|
87 | - `JsonObject::add()` was renamed to `set()`
|
---|
88 | - `JsonArray::at()` and `JsonObject::at()` were renamed to `get()`
|
---|
89 | - Number of digits of floating point value are now set with `double_with_n_digits()`
|
---|
90 |
|
---|
91 | **Personal note about the `String` class**:
|
---|
92 | Support of the `String` class has been added to the library because many people use it in their programs.
|
---|
93 | However, you should not see this as an invitation to use the `String` class.
|
---|
94 | The `String` class is **bad** because it uses dynamic memory allocation.
|
---|
95 | Compared to static allocation, it compiles to a bigger, slower program, and is less predictable.
|
---|
96 | You certainly don't want that in an embedded environment!
|
---|
97 |
|
---|
98 | v4.6
|
---|
99 | ----
|
---|
100 |
|
---|
101 | * Fixed segmentation fault in `DynamicJsonBuffer` when memory allocation fails (issue #92)
|
---|
102 |
|
---|
103 | v4.5
|
---|
104 | ----
|
---|
105 |
|
---|
106 | * Fixed buffer overflow when input contains a backslash followed by a terminator (issue #81)
|
---|
107 |
|
---|
108 | **Upgrading is recommended** since previous versions contain a potential security risk.
|
---|
109 |
|
---|
110 | Special thanks to [Giancarlo Canales Barreto](https://github.com/gcanalesb) for finding this nasty bug.
|
---|
111 |
|
---|
112 | v4.4
|
---|
113 | ----
|
---|
114 |
|
---|
115 | * Added `JsonArray::measureLength()` and `JsonObject::measureLength()` (issue #75)
|
---|
116 |
|
---|
117 | v4.3
|
---|
118 | ----
|
---|
119 |
|
---|
120 | * Added `JsonArray::removeAt()` to remove an element of an array (issue #58)
|
---|
121 | * Fixed stack-overflow in `DynamicJsonBuffer` when parsing huge JSON files (issue #65)
|
---|
122 | * Fixed wrong return value of `parseArray()` and `parseObject()` when allocation fails (issue #68)
|
---|
123 |
|
---|
124 | v4.2
|
---|
125 | ----
|
---|
126 |
|
---|
127 | * Switched back to old library layout (issues #39, #43 and #45)
|
---|
128 | * Removed global new operator overload (issue #40, #45 and #46)
|
---|
129 | * Added an example with EthernetServer
|
---|
130 |
|
---|
131 | v4.1
|
---|
132 | ----
|
---|
133 |
|
---|
134 | * Added DynamicJsonBuffer (issue #19)
|
---|
135 |
|
---|
136 | v4.0
|
---|
137 | ----
|
---|
138 |
|
---|
139 | * Unified parser and generator API (issue #23)
|
---|
140 | * Updated library layout, now requires Arduino 1.0.6 or newer
|
---|
141 |
|
---|
142 | **BREAKING CHANGE**: API changed significantly, see [Migrating code to the new API](https://github.com/bblanchon/ArduinoJson/wiki/Migrating-code-to-the-new-API).
|
---|
143 |
|
---|
144 |
|
---|
145 | v3.4
|
---|
146 | ----
|
---|
147 |
|
---|
148 | * Fixed escaped char parsing (issue #16)
|
---|
149 |
|
---|
150 |
|
---|
151 | v3.3
|
---|
152 | ----
|
---|
153 |
|
---|
154 | * Added indented output for the JSON generator (issue #11), see example bellow.
|
---|
155 | * Added `IndentedPrint`, a decorator for `Print` to allow indented output
|
---|
156 |
|
---|
157 | Example:
|
---|
158 |
|
---|
159 | JsonOject<2> json;
|
---|
160 | json["key"] = "value";
|
---|
161 | json.prettyPrintTo(Serial);
|
---|
162 |
|
---|
163 | v3.2
|
---|
164 | ----
|
---|
165 |
|
---|
166 | * Fixed a bug when adding nested object in `JsonArray` (bug introduced in v3.1).
|
---|
167 |
|
---|
168 | v3.1
|
---|
169 | ----
|
---|
170 |
|
---|
171 | * Calling `Generator::JsonObject::add()` twice with the same `key` now replaces the `value`
|
---|
172 | * Added `Generator::JsonObject::operator[]`, see bellow the new API
|
---|
173 | * Added `Generator::JsonObject::remove()` (issue #9)
|
---|
174 |
|
---|
175 | Old generator API:
|
---|
176 |
|
---|
177 | JsonObject<3> root;
|
---|
178 | root.add("sensor", "gps");
|
---|
179 | root.add("time", 1351824120);
|
---|
180 | root.add("data", array);
|
---|
181 |
|
---|
182 | New generator API:
|
---|
183 |
|
---|
184 | JsonObject<3> root;
|
---|
185 | root["sensor"] = "gps";
|
---|
186 | root["time"] = 1351824120;
|
---|
187 | root["data"] = array;
|
---|
188 |
|
---|
189 | v3.0
|
---|
190 | ----
|
---|
191 |
|
---|
192 | * New parser API, see bellow
|
---|
193 | * Renamed `JsonHashTable` into `JsonObject`
|
---|
194 | * Added iterators for `JsonArray` and `JsonObject` (issue #4)
|
---|
195 |
|
---|
196 | Old parser API:
|
---|
197 |
|
---|
198 | JsonHashTable root = parser.parseHashTable(json);
|
---|
199 |
|
---|
200 | char* sensor = root.getString("sensor");
|
---|
201 | long time = root.getLong("time");
|
---|
202 | double latitude = root.getArray("data").getDouble(0);
|
---|
203 | double longitude = root.getArray("data").getDouble(1);
|
---|
204 |
|
---|
205 | New parser API:
|
---|
206 |
|
---|
207 | JsonObject root = parser.parse(json);
|
---|
208 |
|
---|
209 | char* sensor = root["sensor"];
|
---|
210 | long time = root["time"];
|
---|
211 | double latitude = root["data"][0];
|
---|
212 | double longitude = root["data"][1];
|
---|
213 |
|
---|
214 | v2.1
|
---|
215 | ----
|
---|
216 |
|
---|
217 | * Fixed case `#include "jsmn.cpp"` which caused an error in Linux (issue #6)
|
---|
218 | * Fixed a buffer overrun in JSON Parser (issue #5)
|
---|
219 |
|
---|
220 | v2.0
|
---|
221 | ----
|
---|
222 |
|
---|
223 | * Added JSON encoding (issue #2)
|
---|
224 | * Renamed the library `ArduinoJsonParser` becomes `ArduinoJson`
|
---|
225 |
|
---|
226 | **Breaking change**: you need to add the following line at the top of your program.
|
---|
227 |
|
---|
228 | using namespace ArduinoJson::Parser;
|
---|
229 |
|
---|
230 | v1.2
|
---|
231 | ----
|
---|
232 |
|
---|
233 | * Fixed error in JSON parser example (issue #1)
|
---|
234 |
|
---|
235 | v1.1
|
---|
236 | ----
|
---|
237 |
|
---|
238 | * Example: changed `char* json` into `char[] json` so that the bytes are not write protected
|
---|
239 | * Fixed parsing bug when the JSON contains multi-dimensional arrays
|
---|
240 |
|
---|
241 | v1.0
|
---|
242 | ----
|
---|
243 |
|
---|
244 | Initial release
|
---|