mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	
			
				
					
						
					
					36fe6535c4a1607872f4aba7087eb474e381aad8
				
			
			
		
	ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things).
Features
- JSON decoding (comments are supported)
- JSON encoding (with optional indentation)
- 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:
- Arduino boards: Uno, Due, Mini, Micro, Yun... 
- Espressif chips: ESP8266, ESP32 
- WeMos boards: D1, D1 mini, ... 
- RedBearLab boards: BLE Nano, BLE Mini, WiFi Micro, LOLIN32... 
- Teensy boards 
- Intel boards: Edison, Galileo... 
 Particle boards: Photon, Electron... Particle boards: Photon, Electron...
- Texas Instruments boards: MSP430... 
ArduinoJson compiles with zero warning on the following compilers, IDEs, and platforms:
- Arduino IDE 
- PlatformIO 
- Energia 
 Visual Micro Visual Micro
- Atmel Studio 
- IAR Embedded Workbench 
 Atollic TrueSTUDIO Atollic TrueSTUDIO
- Keil uVision 
- MPLAB X IDE 
- GCC 
- Clang 
- Visual Studio 
Quickstart
Deserialization
Here is a program that parses a JSON document with ArduinoJson.
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];
See the tutorial on arduinojson.org
Serialization
Here is a program that generates a JSON document with ArduinoJson:
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
root["sensor"] = "gps";
root["time"] = 1351824120;
JsonArray& data = root.createNestedArray("data");
data.add(48.756080);
data.add(2.302038);
root.printTo(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 all questions.
- The ArduinoJson Assistant writes programs for you!
Do you like this library? Please star this project on GitHub!
Description
				
					Languages
				
				
								
								
									C++
								
								98.4%
							
						
							
								
								
									CMake
								
								1.1%
							
						
							
								
								
									Shell
								
								0.4%