Fără Descriere

Benoit Blanchon 2f7232859e Fixed PROGMEM causing an exception on ESP8266 (issue #383) 9 ani în urmă
.github 0801e16327 Added GitHub issue template 9 ani în urmă
examples 72d78432c9 Made PROGMEM available on more platforms (issue #381) 9 ani în urmă
include 2f7232859e Fixed PROGMEM causing an exception on ESP8266 (issue #383) 9 ani în urmă
scripts e75e843c88 Moved JsonBuffer size calculator to https://bblanchon.github.io/ArduinoJson/ 9 ani în urmă
test f28157cab7 Fixed compilation error when index is not an `int` (issue #381) 9 ani în urmă
third-party 8c7edbd9c3 ArduinoJson is now a header-only library (issue #199) 9 ani în urmă
.clang-format 8c7edbd9c3 ArduinoJson is now a header-only library (issue #199) 9 ani în urmă
.gitattributes e31d667bec Added support of comments in JSON input (issue #88) 10 ani în urmă
.gitignore c6a4bfa886 Fixed ambiguous overload with `JsonArraySubscript` and `JsonObjectSubscript` (issue #122) 10 ani în urmă
.mbedignore a7ef99d0fe Added .mbedignore for ARM mbdeb (PR #334 by @nuket) 9 ani în urmă
.travis.yml f6cd42d916 Travis: Added Arduino 1.6.12, removed 1.5.8 9 ani în urmă
ArduinoJson.h 8c7edbd9c3 ArduinoJson is now a header-only library (issue #199) 9 ani în urmă
CHANGELOG.md 2f7232859e Fixed PROGMEM causing an exception on ESP8266 (issue #383) 9 ani în urmă
CMakeLists.txt 8c7edbd9c3 ArduinoJson is now a header-only library (issue #199) 9 ani în urmă
LICENSE.md b6d8e6c989 Updated copyright year from 2015 to 2016 10 ani în urmă
README.md 542dff2a08 Added Andrew Melvin to the list of donators 9 ani în urmă
appveyor.yml 146a76247c Set version to 5.7.1 9 ani în urmă
keywords.txt 4a7232ac99 Added DynamicJsonBuffer to the keywords 9 ani în urmă
library.json 146a76247c Set version to 5.7.1 9 ani în urmă
library.properties 146a76247c Set version to 5.7.1 9 ani în urmă

README.md

Arduino JSON library

Build status Build Status Coverage Status Star this project

An elegant and efficient JSON library for embedded systems.

It's designed 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 (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

Works on

  • All Arduino boards (Uno, Due, Mini, Micro, Yun...)
  • ESP8266
  • Teensy
  • Intel Edison and Galileo
  • PlatformIO
  • Energia
  • RedBearLab boards (BLE Nano...)
  • Computers (Windows, Linux, OSX...)

See FAQ: Compatibility issues

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];

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]}

Documentation

The documentation is available online in the Arduino JSON wiki

Testimonials

From Arduino's Forum user jflaplante:

I tried aJson 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 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.

From GitHub user zacsketches:

Thanks for a great library!!! I've been watching you consistently develop this library over the past six months, and I used it today for a publish and subscribe architecture designed to help hobbyists move into more advanced robotics. Your library allowed me to implement remote subscription in order to facilitate multi-processor robots. ArduinoJson saved me a week's worth of time!!

From Reddit user erm_what_:

This is a great library and I wouldn't be able to do the project I'm doing without it. I completely recommend it.

From Reddit user makerhacks:

I am just starting an ESP8266 clock project and now I can output JSON from my server script and interpret it painlessly.

From Twitter user @hemalchevli:

ArduinoJson library should be used as a benchmark/reference for making libraries. Truly elegant.

From GitHub user sticilface:

its a great lib:) and i use it in everything!

Donators

Special thanks to the following persons and companies who made generous donations to the library author:

  • Robert Murphy USA
  • Surge Communications USA
  • Alex Scott United Kingdom
  • Firepick Services LLC USA
  • A B Doodkorte Netherlands
  • Scott Smith USA
  • Johann Stieger Austria
  • Gustavo Donizeti Gini Brazil
  • Charles-Henri Hallard France
  • Martijn van den Burg Netherlands
  • Nick Koumaris Greece
  • Jon Williams USA
  • Kestutis Liaugminas Lithuania
  • Darlington Adibe Nigeria
  • Yoeri Kroon Netherlands
  • Andrew Melvin United Kingdom

Found this library useful? Please star this project or help me back with a donation! :smile: