-
ESP32 IDF환경에서 JSON활성화시키기DEVICE 2023. 11. 2. 17:26
TCP로 별도의 프로토콜을 만드는경우가 아니라면
HTTP나 MQTT를 이용하는데, 이 때 많이 사용하는것이 JSON형식이다.
서버나 모바일, 웹에서 JSON을 자유롭게 사용하는데
펌웨어레벨에서는 직접 구현하기에 양이 적지 않다.
ESP32는 이러한 JSON을 활용하는 방법을 제시하는데 cJSON라이브러리를 활성화하는것이다.
여기서 cJSON.c와 cJSON.h만 다운받아서 적용한다.
https://github.com/DaveGamble/cJSON
GitHub - DaveGamble/cJSON: Ultralightweight JSON parser in ANSI C
Ultralightweight JSON parser in ANSI C. Contribute to DaveGamble/cJSON development by creating an account on GitHub.
github.com
예시
#include <stdio.h> #include "cJSON.h" ..... cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 30); cJSON_AddTrueToObject(root, "isStudent"); char *jsonString = cJSON_Print(root); ESP_LOGI(NORMAL_TAG, "JSON String: %s\n", jsonString); cJSON *parsed = cJSON_Parse(jsonString); cJSON *name = cJSON_GetObjectItem(parsed, "name"); cJSON *age = cJSON_GetObjectItem(parsed, "age"); ESP_LOGI(NORMAL_TAG, "Parsed JSON: name=%s, age=%d\n", name->valuestring, age->valueint); cJSON_Delete(root); cJSON_Delete(parsed); free(jsonString);
결과
JSON의 형식이 이상할 경우 cJSON_Parse() 는 null을 반환하니 이를 이용해 시스템이 멈추지 않도록 주의할것
'DEVICE' 카테고리의 다른 글
STM32CubeIDE에서 ST-Link V2 인식 안될 때 (0) 2024.08.07 ESP32 IDF HTTP OTA (0) 2023.11.09 ESP32 Flash Download Tools (0) 2023.10.13 ESP-IDF 윈도우즈 설치 (1) 2023.10.12 STM32 TIMER PWM NEGATIVE 동작 안할때 (0) 2023.02.24