本示例演示如何使用STM32微控制器将结构化的C语言数据转换成易于存储和传输的JSON格式字符串。
将数据序列化为JSON格式后,请使用Myfree()函数释放内存:
```c
void Json_format(){
// 使用 cJSON 构造方法创建对象
cJSON *root = cJSON_CreateObject();
// 将设备数据添加到 JSON 对象中
cJSON_AddNumberToObject(root, ADC1, Dev_data.ai1);
cJSON_AddNumberToObject(root, ADC2, Dev_data.ai2);
cJSON_AddNumberToObject(root, ADC3, Dev_data.ai3);
for(int i = 0; i < 16; ++i) {
char buffer[5]; // 缓存用于动态生成DI键
snprintf(buffer, sizeof(buffer), DI%d, i + 1);
cJSON_AddNumberToObject(root, buffer, Dev_data.input[i]);
}
// 序列化 JSON 对象为字符串
char *s = cJSON_PrintUnformatted(root);
// 将序列化的结果复制到设备数据的 json_string 中,并释放资源
int size=strlen(s)+1;
memcpy(Dev_data.json_string, s, size);
myfree(s);
// 释放 JSON 对象内存
cJSON_Delete(root);
}
```