帮我写一个将{\"WRITE\":{\"CIRCULATE\":[3],\"S1\":[30,0],\"S2\":[30,0],\"S3\":[30,0],\"S4\":[30,0],\"S5\":[30,0]}}进行cjson解析的代码
时间: 2023-07-29 09:14:20 浏览: 74
circulate:RTMFP之上的API
当然可以帮你写解析代码!以下是一个示例的C语言代码,使用 cJSON 库来解析给定的 JSON 数据:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
// 定义要解析的 JSON 字符串
const char* json_data = "{\"WRITE\":{\"CIRCULATE\":[3],\"S1\":[30,0],\"S2\":[30,0],\"S3\":[30,0],\"S4\":[30,0],\"S5\":[30,0]}}";
// 解析 JSON 数据
cJSON* root = cJSON_Parse(json_data);
if (root == NULL) {
printf("JSON 解析失败!\n");
return 1;
}
// 解析 WRITE 字段
cJSON* write = cJSON_GetObjectItem(root, "WRITE");
// 解析 CIRCULATE 字段
cJSON* circulate = cJSON_GetObjectItem(write, "CIRCULATE");
printf("CIRCULATE: %d\n", circulate->valueint);
// 解析 S1-S5 字段
for (int i = 1; i <= 5; i++) {
char s_key[3];
sprintf(s_key, "S%d", i);
cJSON* s_item = cJSON_GetObjectItem(write, s_key);
int s_value_1 = cJSON_GetArrayItem(s_item, 0)->valueint;
int s_value_2 = cJSON_GetArrayItem(s_item, 1)->valueint;
printf("%s: [%d, %d]\n", s_key, s_value_1, s_value_2);
}
// 释放 cJSON 对象
cJSON_Delete(root);
return 0;
}
```
请确保已经下载并正确安装了 cJSON 库,然后将上述代码保存为一个 C 文件,编译并运行即可解析给定的 JSON 数据。
阅读全文