[Arduino] JSON library 3.0
Only two weeks after version 2.0, I’m releasing a new major revision of Arduino JSON library.
In case you don’t know it already, it’s a free JSON library for embedded systems with the following features:
- Elegant API, very easy to use
- Fixed memory allocation (no malloc)
- Small footprint
EDIT: you should directly jump to version 5.0
What’s new in 3.0?
- New API for the JSON parser (see below)
- Added iterators for
A new API for the parser
This is the major change in this revision: an extremely intuitive API for the JSON parser.
Let’s see an example. Here is a snippet written for version 2.0:
JsonHashTable root = parser.parseHashTable(json); char* sensor = root.getString("sensor"); long time = root.getLong("time"); double latitude = root.getArray("data").getDouble(0); double longitude = root.getArray("data").getDouble(1);
And now, here is the same code written for version 3.0:
JsonObject root = parser.parse(json); char* sensor = root["sensor"]; long time = root["time"]; double latitude = root["data"]; double longitude = root["data"];
As you can see, you can extract the JSON data in a much more intuitive way.
How does it work?
The principles of this new API are:
- Almost every function returns a
operatoris directly available in
- You can cast a
JsonObjectprovide advanced features, like iterators
Can I still use the old API?
I don’t see any reason to stick with the old API. However, I’ll maintain the compatibility within all the 3.X revisions. In other words, I plan to remove the old API in version 4.0. That way, you should be able to update your code progressively.
When you use the old API, you get a few compilation warnings saying that some feature is deprecated.
I don’t recommend this, but if you want to disable those warnings, just add the following line above the