Arduino で JSON を扱う時、サードパーティライブラリを使うケースが殆どだと思います。
しかし、オブジェクトインスタンスを作る.createObject()
が必要だとかchar*
に変換する.print()
とソレを格納する配列が必要だとか、何かと C++ のお作法がまとわりついて面倒臭さが否めませんでした。
ところが、いつの間にか扱いやすいライブラリがArduino公式からリリースされているではないですか。
Arduino_JSON
そのまんまですね。
#include "Arduino_JSON.h"
const char* json = "{\"foo\": \"bar\"}";
JSONVal obj1;
JSONVal obj2 = JSON.parse(json);
obj1["abc"] = 123;
JSON.typeof(obj1);
// > object
if(obj2.hasOwnProperty("foo")){
(const char*)obj2["foo"]
// > "bar"
}
JSONVal keys = obj1.keys();
for(uint8_t i = 0; i < keys.length(); i++){
JSONVal val = obj1[keys[i]];
keys[i];
val;
}
String result = JSON.stringify(obj2);
構文も JavaScript のソレにだいぶ近いです。
やったー!😊