Brak opisu

Benoit Blanchon ffbaebd198 Added testimonials from Reddit users erm_what_ and makerhacks 10 lat temu
examples 0a1c27f873 Updated copyright year 10 lat temu
include 04b8781c8d Fixed GCC warning "declaration shadows a member" (issue #103) 10 lat temu
scripts 75f8e25aed Added a script to measure the size of the sample programs 10 lat temu
src a1943e21ed Fixed compilation on Visual Studio 2010 and 2012 (issue #107) 10 lat temu
test 5a4d993f7d Fixed memory alignment, which made ESP8266 crash (issue #104) 10 lat temu
third-party 5c8283b3e4 Added cpplint 11 lat temu
.clang-format 2524a00a96 Fixed segmentation fault in `DynamicJsonBuffer` when memory allocation fails (issue #92) 10 lat temu
.gitattributes e31d667bec Added support of comments in JSON input (issue #88) 10 lat temu
.gitignore 92e687303d Added support of non standard JSON input (issue #44) 10 lat temu
.travis.yml bce101578d Merge branch 'master' into 5.0 10 lat temu
CHANGELOG.md 04b8781c8d Fixed GCC warning "declaration shadows a member" (issue #103) 10 lat temu
CMakeLists.txt 92e687303d Added support of non standard JSON input (issue #44) 10 lat temu
LICENSE.md 0a1c27f873 Updated copyright year 10 lat temu
README.md ffbaebd198 Added testimonials from Reddit users erm_what_ and makerhacks 10 lat temu
keywords.txt a7b366e74f Updated for v4.0 11 lat temu
library.json 160ff0961e Added PlatformIO manifest file 11 lat temu
library.properties 0cf8249b14 Fixed Clang warning "register specifier is deprecated" (issue #102) 10 lat temu

README.md

Arduino JSON library

Build status Build Status Coverage Status

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
  • Efficient (no malloc, nor copy)
  • Portable (written in C++98)
  • Self-contained (no external dependency)
  • 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];

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 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.

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.


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