[](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/master) [](https://travis-ci.org/bblanchon/ArduinoJson) [](https://coveralls.io/r/bblanchon/ArduinoJson?branch=master) [](https://github.com/bblanchon/ArduinoJson)

ArduinoJson - C++ JSON library for IoT
====================
*An elegant and efficient JSON library for embedded systems.*
It's designed to have the most intuitive API, the smallest footprint and is able to work 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.
For instance, it supports Aduino's `String` and `Stream`, but also `std::string`, `std::istream` and `std::ostream`.
Features
--------
* JSON decoding (comments are supported)
* JSON encoding (with optional indentation)
* Elegant API, very easy to use
* Fixed memory allocation (zero malloc)
* No data duplication (zero copy)
* Portable (written in C++98)
* Self-contained (no external dependency)
* Small footprint
* Header-only library
* MIT License
* [Comprehensive documentation](http://arduinojson.org)
Works on
--------
* Arduino boards: Uno, Due, Mini, Micro, Yun...
* ESP8266, ESP32
* Teensy
* RedBearLab boards (BLE Nano...)
* Intel Edison and Galileo
* WeMos boards: D1...
* Computers: Windows, Linux, OSX...
* PlatformIO
* Particle
* Energia
Quick start
-----------
#### Decoding / Parsing
```c++
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 JsonParserExample.ino](http://arduinojson.org/example/parser/)
Use [ArduinoJson Assistant](http://arduinojson.org/assistant/) to compute the buffer size.
#### Encoding / Generating
```c++
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
root["sensor"] = "gps";
root["time"] = 1351824120;
JsonArray& data = root.createNestedArray("data");
data.add(48.756080);
data.add(2.302038);
root.printTo(Serial);
// This prints:
// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}
```
[See JsonGeneratorExample.ino](http://arduinojson.org/example/generator/)
Use [ArduinoJson Assistant](http://arduinojson.org/assistant/) to compute the buffer size.
Documentation
-------------
The documentation is available online in the [ArduinoJson Website](http://arduinojson.org/).
The [ArduinoJson Assistant](http://arduinojson.org/assistant/) helps you get started with the library.
Donators
--------
Special thanks to the following persons and companies who made generous donations to the library author:
* Robert Murphy  * Surge Communications
* Surge Communications  * Alex Scott
* Alex Scott  * Firepick Services LLC
* Firepick Services LLC  * A B Doodkorte
* A B Doodkorte  * Scott Smith
* Scott Smith  * Johann Stieger
* Johann Stieger  * Gustavo Donizeti Gini
* Gustavo Donizeti Gini  * Charles-Henri Hallard
* Charles-Henri Hallard  * Martijn van den Burg
* Martijn van den Burg  * Nick Koumaris
* Nick Koumaris  * Jon Williams
* Jon Williams  * Kestutis Liaugminas
* Kestutis Liaugminas  * Darlington Adibe
* Darlington Adibe  * Yoeri Kroon
* Yoeri Kroon  * Andrew Melvin
* Andrew Melvin  * Doanh Luong
* Doanh Luong  * Christoph Schmidt
* Christoph Schmidt  * OpenEVSE LLC
* OpenEVSE LLC  * Prokhoryatov Alexey
* Prokhoryatov Alexey  * Google Inc.
* Google Inc.  * Charles Haynes
* Charles Haynes  * Charles Walker
* Charles Walker  * Günther Jehle
* Günther Jehle  * Patrick Elliott
* Alexander Wilms
* Patrick Elliott
* Alexander Wilms  ---
Found this library useful? Please star this project or [help me back with a donation!](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate%40benoitblanchon%2efr&lc=GB&item_name=Benoit%20Blanchon&item_number=Arduino%20JSON¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted) :smile:
---
Found this library useful? Please star this project or [help me back with a donation!](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate%40benoitblanchon%2efr&lc=GB&item_name=Benoit%20Blanchon&item_number=Arduino%20JSON¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted) :smile: