Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

Learn more
πŸ“Ÿ C++ JSON library for IoT. Simple and efficient.
Branch: 6.x
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Changed all link to point to HTTPS version Dec 11, 2017
examples
fuzzing Added overflow handling in JsonVariant::as<T>() and JsonVariant::is<T>() Mar 6, 2019
scripts Fixed publish.sh not committing appveyor.yml Mar 22, 2019
src Fixed error "attributes are not allowed on a function-definition" Mar 24, 2019
test Fixed warning on Clang 8 Mar 24, 2019
third-party/catch Muted warning "will change in GCC 7.1" (issue #914) Mar 1, 2019
.clang-format
.gitattributes
.gitignore
.mbedignore Added fuzzing/ to .mbedignore Jan 25, 2017
.travis.yml
ArduinoJson.h
CHANGELOG.md
CMakeLists.txt Updated copyright year to 2019 Feb 15, 2019
CONTRIBUTING.md Split CONTRIBUTING and SUPPORT Oct 3, 2017
LICENSE.md
README.md
SUPPORT.md Added campaign information in links Jan 15, 2018
appveyor.yml Fixed publish.sh not committing appveyor.yml Mar 22, 2019
banner.svg
keywords.txt Improved syntax highlighting in Arduino IDE Dec 14, 2018
library.json
library.properties Set version to 6.10.0 Mar 22, 2019

README.md

ArduinoJson


arduino-library-badge Build Status Build Status Coverage Status Star this project

ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things).

Features

  • JSON decoding (comments are supported)
  • JSON encoding (with optional indentation)
  • MessagePack
  • Elegant API, easy to use
  • Fixed memory allocation (zero malloc)
  • No data duplication (zero copy)
  • Portable (written in C++98, can be used in any C++ project)
  • Self-contained (no external dependency)
  • Small footprint
  • Input and output streams
  • 100% code coverage
  • Header-only library
  • MIT License
  • Comprehensive documentation

Compatibility

ArduinoJson works on the following hardware:

ArduinoJson compiles with zero warning on the following compilers, IDEs, and platforms:

Quickstart

Deserialization

Here is a program that parses a JSON document with ArduinoJson.

char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";

DynamicJsonDocument doc(1024);
deserializeJson(doc, json);

const char* sensor = doc["sensor"];
long time          = doc["time"];
double latitude    = doc["data"][0];
double longitude   = doc["data"][1];

See the tutorial on arduinojson.org

Serialization

Here is a program that generates a JSON document with ArduinoJson:

DynamicJsonDocument doc(1024);

doc["sensor"] = "gps";
doc["time"]   = 1351824120;

JsonArray data = doc.createNestedArray("data");
data.add(48.756080);
data.add(2.302038);

serializeJson(doc, Serial);
// This prints:
// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}

See the tutorial on arduinojson.org

Documentation

The documentation is available on arduinojson.org, here are some shortcuts:

  • The Examples show how to use the library in various situations.
  • The API Reference contains the description of each class and function.
  • The FAQ has the answer to virtually every question.
  • The ArduinoJson Assistant writes programs for you!

Do you like this library? Please star this project on GitHub!

What? You don't like it but you love it? We don't take donations anymore, but we sell a book, so you can help and learn at the same time!

You can’t perform that action at this time.