forked from bblanchon/ArduinoJson
68 lines
2.2 KiB
Markdown
68 lines
2.2 KiB
Markdown
Arduino JSON library
|
|
====================
|
|
|
|
*An elegant and efficient JSON library for embedded systems.*
|
|
|
|
It's design to have the most intuitive API, the smallest footprint and works without any allocation on the heap (no malloc).
|
|
|
|
It has been written with Arduino in mind, but it isn't linked to Arduino libraries so you can use this library in any other C++ project.
|
|
|
|
Features
|
|
--------
|
|
|
|
* JSON decoding
|
|
* JSON encoding (with optional indentation)
|
|
* Elegant API, very easy to use
|
|
* Fixed memory allocation (no malloc)
|
|
* Small footprint
|
|
* MIT License
|
|
|
|
Quick start
|
|
-----------
|
|
|
|
#### Decoding / Parsing
|
|
|
|
char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";
|
|
|
|
StaticJsonBuffer<200> jsonBuffer;
|
|
|
|
JsonObject& root = jsonBuffer.parseObject(json);
|
|
|
|
const char* sensor = root["sensor"];
|
|
long time = root["time"];
|
|
double latitude = root["data"][0];
|
|
double longitude = root["data"][1];
|
|
|
|
[See complete guide](/doc/Decoding JSON.md)
|
|
|
|
#### Encoding / Generating
|
|
|
|
StaticJsonBuffer<200> jsonBuffer;
|
|
|
|
JsonObject& root = jsonBuffer.createObject();
|
|
root["sensor"] = "gps";
|
|
root["time"] = 1351824120;
|
|
|
|
JsonArray& data = root.createNestedArray("data");
|
|
data.add(48.756080, 6); // 6 is the number of decimals to print
|
|
data.add(2.302038, 6); // if not specified, 2 digits are printed
|
|
|
|
root.printTo(Serial);
|
|
// This prints:
|
|
// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}
|
|
|
|
[See complete guide](/doc/Encoding JSON.md)
|
|
|
|
Testimonials
|
|
------------
|
|
|
|
From Arduino's Forum user `jflaplante`:
|
|
> I tried the [aJson and json-arduino] before trying your library. I always ran into memory problem after a while.
|
|
> I have no such problem so far with your library. It is working perfectly with my web services.
|
|
|
|
From Arduino's Forum user `gbathree`:
|
|
> Thanks so much - this is an awesome library! If you want to see what we're doing with it - the project is located at www.photosynq.org.
|
|
|
|
From StackOverflow user `thegreendroid`:
|
|
> It has a really elegant, simple API and it works like a charm on embedded and Windows/Linux platforms. We recently started using this on an embedded project and I can vouch for its quality.
|