mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Reworked the readme
This commit is contained in:
		
							
								
								
									
										131
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										131
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,50 +1,60 @@ | ||||
|  | ||||
|  | ||||
| --- | ||||
|  | ||||
| [](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 is a C++ JSON library for Arduino and IoT (Internet Of Things). | ||||
|  | ||||
| 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 | ||||
| -------- | ||||
| ## Features | ||||
|  | ||||
| * JSON decoding (comments are supported) | ||||
| * JSON encoding (with optional indentation) | ||||
| * Elegant API, very easy to use | ||||
| * Elegant API, easy to use | ||||
| * Fixed memory allocation (zero malloc) | ||||
| * No data duplication (zero copy) | ||||
| * Portable (written in C++98) | ||||
| * Portable (written in C++98, can be used in any C++ project) | ||||
| * Self-contained (no external dependency) | ||||
| * Small footprint | ||||
| * Header-only library | ||||
| * MIT License | ||||
| * Input and output streams | ||||
| * [100% code coverage](https://coveralls.io/github/bblanchon/ArduinoJson) | ||||
| * [Header-only library](https://en.wikipedia.org/wiki/Header-only) | ||||
| * [MIT License](https://en.wikipedia.org/wiki/MIT_License) | ||||
| * [Comprehensive documentation](https://arduinojson.org) | ||||
|  | ||||
| Works on | ||||
| -------- | ||||
| ## Compatibility | ||||
|  | ||||
| * 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 | ||||
| ArduinoJson works on the following hardware: | ||||
|  | ||||
| Quick start | ||||
| ----------- | ||||
| * <img src="https://www.arduino.cc/favicon.ico" height="16" width="16"> Arduino boards: [Uno](https://www.arduino.cc/en/Main/ArduinoBoardUno), [Due](https://www.arduino.cc/en/Main/ArduinoBoardDue), [Mini](https://www.arduino.cc/en/Main/ArduinoBoardMini), [Micro](https://www.arduino.cc/en/Main/ArduinoBoardMicro), [Yun](https://www.arduino.cc/en/Main/ArduinoBoardYun)... | ||||
| * <img src="http://espressif.com/sites/all/themes/espressif/favicon.ico" height="16" width="16"> Espressif chips: [ESP8266](https://en.wikipedia.org/wiki/ESP8266), [ESP32](https://en.wikipedia.org/wiki/ESP32) | ||||
| * <img src="https://www.wemos.cc/themes/martin-materialize-parallax/assets/favicon.ico" height="16" width="16"> WeMos boards: [D1](https://wiki.wemos.cc/products:d1:d1), [D1 mini](https://wiki.wemos.cc/products:d1:d1_mini),  ... | ||||
| * <img src="http://redbearlab.com/favicon.ico" height="16" width="16"> RedBearLab boards: [BLE Nano](http://redbearlab.com/blenano/), [BLE Mini](http://redbearlab.com/blemini/), [WiFi Micro](https://redbear.cc/product/wifi/wifi-micro.html), [LOLIN32](https://wiki.wemos.cc/products:lolin32:lolin32)... | ||||
| * <img src="https://www.pjrc.com/favicon.ico" height="16" width="16"> [Teensy](https://www.pjrc.com/teensy/) boards | ||||
| * <img src="https://software.intel.com/sites/all/themes/zero/favicon.ico" height="16" width="16"> Intel boards: Edison, Galileo... | ||||
| * <img src="https://www-assets.particle.io/images/favicon.png"  height="16" width="16"> Particle boards: [Photon](https://www.particle.io/products/hardware/photon-wifi-dev-kit), [Electron](https://www.particle.io/products/hardware/electron-cellular-dev-kit)... | ||||
| * <img src="http://www.ti.com/favicon.ico" height="16" width="16"> Texas Instruments boards: [MSP430](http://www.ti.com/microcontrollers/msp430-ultra-low-power-mcus/overview/overview.html)... | ||||
|  | ||||
| #### Decoding / Parsing | ||||
| ArduinoJson compiles with zero warning on the following compilers, IDEs, and platforms: | ||||
|  | ||||
| * <img src="https://www.arduino.cc/favicon.ico" height="16" width="16"> [Arduino IDE](https://www.arduino.cc/en/Main/Software) | ||||
| * <img src="http://cdn.platformio.org/favicon.ico" height="16" width="16"> [PlatformIO](http://platformio.org/) | ||||
| * <img src="http://energia.nu/img/favicon.ico" height="16" width="16"> [Energia](http://energia.nu/) | ||||
| * <img src="http://www.visualmicro.com/pics/arduino-visual-studio-ld.png" height="16" width="16"> [Visual Micro](http://www.visualmicro.com/) | ||||
| * <img src="http://www.atmel.com/Images/favicon.ico" height="16" width="16"> [Atmel Studio](http://www.atmel.com/microsite/atmel-studio/) | ||||
| * <img src="https://www.iar.com/favicon.ico" height="16" width="16"> [IAR Embedded Workbench](https://www.iar.com/iar-embedded-workbench/) | ||||
| * <img src="http://www.st.com/etc/clientlibs/st-site/media/app/images/favicon.png" height="16" width="16"> [Atollic TrueSTUDIO](https://atollic.com/truestudio/) | ||||
| * <img src="http://www.keil.com/favicon.ico" height="16" width="16"> [Keil uVision](http://www.keil.com/) | ||||
| * <img src="http://www.microchip.com/favicon.ico" height="16" width="16"> [MPLAB X IDE](http://www.microchip.com/mplab/mplab-x-ide) | ||||
| * <img src="https://gcc.gnu.org/favicon.ico" height="16" width="16"> [GCC](https://gcc.gnu.org/) | ||||
| * <img src="https://clang.llvm.org/favicon.ico" height="16" width="16"> [Clang](https://clang.llvm.org/) | ||||
| * <img src="https://www.visualstudio.com/favicon.ico" height="16" width="16"> [Visual Studio](https://www.visualstudio.com/) | ||||
|  | ||||
| ## Quickstart | ||||
|  | ||||
| ### Deserialization | ||||
|  | ||||
| Here is a program that parses a JSON document with ArduinoJson. | ||||
|  | ||||
| ```c++ | ||||
| char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; | ||||
| @@ -59,11 +69,11 @@ double latitude    = root["data"][0]; | ||||
| double longitude   = root["data"][1]; | ||||
| ``` | ||||
|  | ||||
| [See JsonParserExample.ino](https://arduinojson.org/example/parser/) | ||||
| See the [tutorial on arduinojson.org](http://arduinojson.org/doc/decoding/) | ||||
|  | ||||
| Use [ArduinoJson Assistant](https://arduinojson.org/assistant/) to compute the buffer size. | ||||
| ### Serialization | ||||
|  | ||||
| #### Encoding / Generating | ||||
| Here is a program that generates a JSON document with ArduinoJson: | ||||
|  | ||||
| ```c++ | ||||
| StaticJsonBuffer<200> jsonBuffer; | ||||
| @@ -81,52 +91,17 @@ root.printTo(Serial); | ||||
| // {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} | ||||
| ``` | ||||
|  | ||||
| [See JsonGeneratorExample.ino](https://arduinojson.org/example/generator/) | ||||
| See the [tutorial on arduinojson.org](http://arduinojson.org/doc/encoding/) | ||||
|  | ||||
| Use [ArduinoJson Assistant](https://arduinojson.org/assistant/) to compute the buffer size. | ||||
| ## Documentation | ||||
|  | ||||
| The documentation is available on [arduinojson.org](https://arduinojson.org/), here are some shortcuts: | ||||
|  | ||||
| Documentation | ||||
| ------------- | ||||
|  | ||||
| The documentation is available online in the [ArduinoJson Website](https://arduinojson.org/). | ||||
|  | ||||
| The [ArduinoJson Assistant](https://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 <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * Surge Communications <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * Alex Scott <img alt='United Kingdom' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1ec-1f1e7.svg' width='18' height='18'> | ||||
| * Firepick Services LLC <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * A B Doodkorte <img alt='Netherlands' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1f3-1f1f1.svg' width='18' height='18'> | ||||
| * Scott Smith <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * Johann Stieger <img alt='Austria' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1e6-1f1f9.svg' width='18' height='18'> | ||||
| * Gustavo Donizeti Gini <img alt='Brazil' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1e7-1f1f7.svg' width='18' height='18'> | ||||
| * Charles-Henri Hallard <img alt='France' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1eb-1f1f7.svg' width='18' height='18'> | ||||
| * Martijn van den Burg <img alt='Netherlands' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1f3-1f1f1.svg' width='18' height='18'> | ||||
| * Nick Koumaris <img alt='Greece' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1ec-1f1f7.svg' width='18' height='18'> | ||||
| * Jon Williams <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * Kestutis Liaugminas <img alt='Lithuania' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1f1-1f1f9.svg' width='18' height='18'> | ||||
| * Darlington Adibe <img alt='Nigeria' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1f3-1f1ec.svg' width='18' height='18'> | ||||
| * Yoeri Kroon <img alt='Netherlands' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1f3-1f1f1.svg' width='18' height='18'> | ||||
| * Andrew Melvin <img alt='United Kingdom' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1ec-1f1e7.svg' width='18' height='18'> | ||||
| * Doanh Luong <img alt ='Vietnam' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fb-1f1f3.svg' width='18' height='18'> | ||||
| * Christoph Schmidt <img alt='Germany' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1e9-1f1ea.svg' width='18' height='18'> | ||||
| * OpenEVSE LLC <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * Prokhoryatov Alexey <img alt='Russia' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1f7-1f1fa.svg' width='18' height='18'> | ||||
| * Google Inc. <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * Charles Haynes <img alt='Australia' src='https://d1j8pt39hxlh3d.cloudfront.net/development/emojione/2.2/989/2546.svg' width='18' height='18'> | ||||
| * Charles Walker <img alt='USA' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1fa-1f1f8.svg' width='18' height='18'> | ||||
| * Günther Jehle <img alt='Liechtenstein' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1f1-1f1ee.svg' width='18' height='18'> | ||||
| * Patrick Elliott | ||||
| * Alexander Wilms <img alt='Germany' src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.4/assets/svg/1f1e9-1f1ea.svg' width='18' height='18'> | ||||
|  | ||||
| * The [Examples](https://arduinojson.org/example/) show how to use the library in various situations. | ||||
| * The [API Reference](https://arduinojson.org/api/) contains the description of each class and function. | ||||
| * The [FAQ](https://arduinojson.org/faq/) has the answer to virtually all questions. | ||||
| * The [ArduinoJson Assistant](https://arduinojson.org/assistant/) writes programs for you! | ||||
|  | ||||
| --- | ||||
|  | ||||
| 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: | ||||
| Do you like this library? Please [star this project on GitHub](https://github.com/bblanchon/ArduinoJson/stargazers)! | ||||
		Reference in New Issue
	
	Block a user