mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-29 18:27:37 +02:00
Updated README.md
This commit is contained in:
@ -1,11 +1,11 @@
|
||||
An efficient JSON parser for Arduino
|
||||
====================================
|
||||
Arduino JSON library - Parser
|
||||
=============================
|
||||
|
||||
This library is an thin C++ wrapper around the *jsmn* tokenizer: http://zserge.com/jsmn.html
|
||||
|
||||
It's design to be very lightweight, works without any allocation on the heap (no malloc) and supports nested objects.
|
||||
|
||||
It has been written with Arduino in mind, but it isn't linked to Arduino libraries so you can use this library on any other C++ project.
|
||||
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
|
||||
@ -13,33 +13,26 @@ Features
|
||||
|
||||
* Based on the well-proven [jsmn](http://zserge.com/jsmn.html) tokenizer
|
||||
* Supports nested objects
|
||||
* Works with fixed memory allocation : no `malloc()`
|
||||
* Low footprint
|
||||
* Elegant API, very easy to use
|
||||
* Fixed memory allocation (no malloc)
|
||||
* Small footprint
|
||||
* MIT License
|
||||
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
char json[] = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
|
||||
char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";
|
||||
|
||||
JsonParser<32> parser;
|
||||
|
||||
JsonHashTable hashTable = parser.parseHashTable(json);
|
||||
JsonHashTable root = parser.parseHashTable(json);
|
||||
|
||||
if (!hashTable.success())
|
||||
{
|
||||
return;
|
||||
}
|
||||
char* sensor = root.getString("sensor");
|
||||
|
||||
char* name = hashTable.getString("Name");
|
||||
|
||||
JsonArray skills = hashTable.getArray("Skills");
|
||||
|
||||
int age = hashTable.getLong("Age");
|
||||
|
||||
bool online = hashTable.getBool("Online");
|
||||
long time = root.getLong("time");
|
||||
|
||||
JsonArray coords = root.getArray("data");
|
||||
|
||||
|
||||
How to use ?
|
||||
@ -49,14 +42,16 @@ How to use ?
|
||||
|
||||
Download the library and extract it to:
|
||||
|
||||
<your Arduino Sketch folder>/libraries/ArduinoJsonParser
|
||||
<your Arduino Sketch folder>/libraries/ArduinoJson
|
||||
|
||||
### 2. Import in your sketch
|
||||
|
||||
Just add the following line on the top of your `.ino` file:
|
||||
Just add the following lines at the top of your `.ino` file:
|
||||
|
||||
#include <JsonParser.h>
|
||||
|
||||
using namespace ArduinoJson::Parser;
|
||||
|
||||
### 3. Create a parser
|
||||
|
||||
To extract data from the JSON string, you need to create a `JsonParser`, and specify the number of token you allocate for the parser itself:
|
||||
@ -233,7 +228,7 @@ Code size
|
||||
|
||||
Theses tables has been created by analyzing the map file generated by AVR-GCC after adding `-Wl,-Map,foo.map` to the command line.
|
||||
|
||||
As you'll see the code size if between 1680 and 3528 bytes, depending on the features you use.
|
||||
As you'll see the code size is between 1680 and 3528 bytes, depending on the features you use.
|
||||
|
||||
### Minimum setup
|
||||
|
||||
@ -407,10 +402,3 @@ As you'll see the code size if between 1680 and 3528 bytes, depending on the fea
|
||||
<td>710</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
Links
|
||||
-----
|
||||
|
||||
* [The project for which I made me this library](http://blog.benoitblanchon.fr/rfid-payment-terminal/)
|
||||
* [Blog post on the motivation for this library](http://blog.benoitblanchon.fr/arduino-json-parser/)
|
15
README.md
15
README.md
@ -7,7 +7,8 @@ It's design to be very lightweight, works without any allocation on the heap (no
|
||||
|
||||
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
|
||||
Features
|
||||
--------
|
||||
|
||||
* JSON decoding: [more details here](/JsonParser/)
|
||||
* JSON encoding: [more details here](/JsonGenerator/)
|
||||
@ -16,7 +17,8 @@ It has been written with Arduino in mind, but it isn't linked to Arduino librari
|
||||
* Small footprint
|
||||
* MIT License
|
||||
|
||||
# Feature comparison
|
||||
Feature comparison
|
||||
------------------
|
||||
|
||||
| Library | Memory allocation | Nested objects | Encoding | Parser size | Encoder size |
|
||||
| ------------ | ----------------- | -------------- | -------- | ----------- | ------------ |
|
||||
@ -34,7 +36,8 @@ In each case the target platform was an Arduino Duemilanove and Arduino IDE 1.0.
|
||||
|
||||
Links: [json-arduino](https://github.com/not404/json-arduino), [aJson](https://github.com/interactive-matter/aJson)
|
||||
|
||||
# Testimonials
|
||||
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.
|
||||
@ -45,3 +48,9 @@ From Arduino's Forum user `gbathree`:
|
||||
|
||||
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.
|
||||
|
||||
Links
|
||||
-----
|
||||
|
||||
* [The project for which I made me this library](http://blog.benoitblanchon.fr/rfid-payment-terminal/)
|
||||
* [Blog post on the motivation for this library](http://blog.benoitblanchon.fr/arduino-json-parser/)
|
Reference in New Issue
Block a user