背景と目的
Arduinoで、JSONを扱いたかったため、parsonというC言語ライブラリを使用した。使い方を自分用にメモする。
使いそうなものを列挙
空の状態"{}"に、データを追加していき、シリアライズするまで、おおむね使いそうなものを列挙。
#include "parson.h" : // ルートValueを作成 JSON_Value *rootValue = json_value_init_object(); // ルートObjectを取得 JSON_Object *rootObj = json_object(rootValue); // 文字列を追加 json_object_set_string(rootObj, "string", "hello"); // 数値を追加 json_object_set_number(rootObj, "number", 1.01); // ブール値を追加 json_object_set_number(rootObj, "bool", 1); // 配列を追加 ----------------------------------------------- // 配列Valueを作成 JSON_Value *arrayValue = json_value_init_array(); // JSON_Arrayを取得 JSON_Array *arr = json_value_get_array(arrayValue); // 配列要素を追加 json_array_append_number(arr, 2.02); // 数値 json_array_append_string(arr, "hello, array."); // 文字列 JSON_Value *objValue = json_value_init_object(); // オブジェクト(空) json_array_append_value(arr, objValue); JSON_Value *arrayValue2 = json_value_init_array(); // 配列(空) json_array_append_value(arr, arrayValue2); // rootObjに追加 json_object_set_value(rootObj, "array", arrayValue); // シリアライズ char *jsonString = json_serialize_to_string(rootValue); Serial.printf("jsonString=%s\n", jsonString);
シリアライズした結果は、以下。
jsonString={"string":"hello","number":1.01,"bool":1,"array":[2.02,"hello, array.",{},[]]}