References - HCRL-ALLSTAR/ArduinoJSON-wrapper GitHub Wiki

References

สารบัญ


array_add

void array_add(D *doc, const char *keyname, T data, size_t size)
  • เพื่มข้อมูลแบบ array เข้าไปใน DynamicJsonDocument
  • ข้อมูลที่เพิ่มจะอยู่ในรูปแบบ JSON ภาายใต้ key ที่กำหนด
Parameter Description
doc ตัวแปรเป้าหมายที่ใช้เก็บข้อมูล เป็นตัวแปรแบบ DynamicJsonDocument
keyname ชื่อของ key ในการเก็บข้อมูลแบบ JSON
data ข้อมูลแบบ array ที่ต้องการเพิ่มเข้าไป
size ขนาดของ array ที่ต้องการเพิ่ม คำนวณได้จาก size(data)/size(data[0])
  • ตัวอย่างการใช้งาน
 int i[] = {1, 2, 3, 4};
 array_add(&maindoc, "single_arr", i, sizeof(i) / sizeof(i[0]));
  • output
{
"single_arr": [  
    1,
    2, 
    3, 
    4, 
    123
  ]
}

object_add

void object_add(H *host, D *data, const char *keyname, size_t keysize, char **key)
  • เพิ่ม object ลงในตัวแปรแบบ DynamicJsonDocument
  • ข้อมูลจะอยู่ในรูปแบบ JSON มี key ตาม keyname ที่กำหนด
Parameter Description
host ตัวแปรเป้าหมายที่ใช้เก็บข้อมูล เป็นตัวแปรแบบ DynamicJsonDocument
data ข้อมูลแบบ array ที่ต้องการเพิ่มเข้าไป โดยต้องเรียงลำดับให้ตรงกับชื่อของ key ใน object
keyname ชื่อของ key ในการเก็บข้อมูลแบบ JSON
size ขนาดของ array ที่ต้องการเพิ่ม คำนวณได้จาก size(data)/size(data[0])
key char array ที่จะแทนชื่อของ key ใน object
  • ตัวอย่าง
 int i[] = {1, 2, 3, 4};
 auto tchar = new char *[10] { "value1", "value2", "value3", "value4" };
 object_add(&maindoc, i, "general_obj", 4, tchar);

 bool logic[] = {true, false, false};
 auto a = new char *[10] { "a", "b", "c" };
 object_add(&maindoc, logic, "general_obj", 3, a);
  • output
{
"general_obj": {
    "value1": 1,
    "value2": 2,
    "value3": 3,
    "value4": 4,
    "a": true,
    "b": false,
    "c": false
  }
}

nested_array

void nested_array(H *host, D *data, size_t size, size_t size_per_data)
  • เพิ่ม nested array ลงใน DynamicJsonDocument
  • กำหนด keyname โดยใช้ [] ใน host เพื่อระบุ keyname
Parameter Description
host ตัวแปรเป้าหมายที่ใช้เก็บข้อมูล เป็นตัวแปรแบบ DynamicJsonDocument
data ข้อมูลแบบ array ที่ต้องการเพิ่มเข้าไป โดยต้องเรียงลำดับให้ตรงกับชื่อของ key ใน object
size ขนาดของ array ที่ต้องการเพิ่ม คำนวณได้จาก
size_per_data ขนาดของ array แต่ละตัว ใน nested array
  • ตัวอย่าง
 int b[2][2] = {{2, 123}, {233, 18}};
 nested_array(&maindoc["test"]["two_dim_arr"], b, 2, 2);
  • output
{
 "test": {
    "arr_arr_nested": [
      [
        2,
        123
      ],
      [
        233,
        18
      ]
    ]
  }
}

nested_object

 void nested_object(H *host, D *data, size_t datasize, size_t keysize, char **key)
  • เพิ่ม nested object ใน DynamicJsonDocument
Parameter Description
host ตัวแปรเป้าหมายที่ใช้เก็บข้อมูล เป็นตัวแปรแบบ DynamicJsonDocument
data ข้อมูลแบบ array ที่ต้องการเพิ่มเข้าไป โดยต้องเรียงลำดับให้ตรงกับชื่อของ key ใน object
size ขนาดของ array ที่ต้องการเพิ่ม คำนวณได้จาก
keysize ขนาดของ array แต่ละตัว ใน nested object
key char array ที่จะแทนชื่อของ key ใน object
  • ตัวอย่าง
 int dictionary[3][2] = {{23, 68}, {30, 70}, {22, 21}};
 auto dict_key = new char *[10] { "temp", "hum" };
 nested_object(&maindoc["test"]["array_of_object"], dictionary, 3, 2, dict_key);
  • output
{
"test": {
    "object_arr_nested": [
      {
        "temp": 23,
        "hum": 68
      },
      {
        "temp": 30,
        "hum": 70
      },
      {
        "temp": 22,
        "hum": 21
      }
    ]
  }
}