#include "cJSON.h"
#include <string.h>
void Generate_JSON(void) {
// 创建根对象
cJSON *root = cJSON_CreateObject();
// 添加键值对
cJSON_AddStringToObject(root, "device", "STM32F103");
cJSON_AddNumberToObject(root, "temperature", 25.5);
cJSON_AddBoolToObject(root, "status", 1); // true
// 创建嵌套对象(如传感器数据)
cJSON *sensor = cJSON_CreateObject();
cJSON_AddStringToObject(sensor, "type", "DHT11");
cJSON_AddNumberToObject(sensor, "humidity", 60);
cJSON_AddItemToObject(root, "sensor", sensor);
// 转换为JSON字符串
char *json_str = cJSON_Print(root); // 带格式化(易读)
// char *json_str = cJSON_PrintUnformatted(root); // 无格式化(节省空间)
// 通过串口发送(需提前初始化USART)
HAL_UART_Transmit(&huart1, (uint8_t *)json_str, strlen(json_str), HAL_MAX_DELAY);
// 释放内存
free(json_str); // cJSON_Print返回的字符串需手动释放
cJSON_Delete(root); // 释放整个JSON对象
}
|