ArduinoJson

From Leo's Notes
Last edited on 26 July 2020, at 22:46.

ArduinoJson is an Arduino library that makes it easier to parse and generate JSON output. This is useful to save multiple parameters into a config file in SPIFFS or to generate or parse MQTT messages.

Usage

Install the ArduinoJson library in the Arduino library manager. Be aware that the latest version of ArduinoJson is version 6 and is not compatible with version 5.

AdrduinoJson 5

Include the header :

#include <ArduinoJson.h>

To generate JSON output, create a new JsonObject and use it like a dictionary. Use printTo() to generate the JSON output.

DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.createObject();

# You can specify values with various types. Eg. char* or literal strings
json["name"] = sensor_name;
json["command"] = "push";

# Floats and ints
json["measurement_f"] = 12.2;
json["measurement_i"] = 12;

# Boolean
json["measurement_b"] = true;

# Convert into a JSON message as char array
char payload[256];
json.printTo(payload);

To parse JSON data:

DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.parseObject(jsonpayload);

// Copy out the strings or do parsing as necessary.
if (json.success()) {
	strcpy(mqtt_server, json["mqtt_server"]);
	mqtt_port = atoi(json["mqtt_port"])
}

See Also