解析cjson数组[{"id":"hc_off","remark":"","value":"0"}]
时间: 2024-02-10 07:09:37 浏览: 79
JSON解析数组
解析cjson数组可以使用cJSON库来实现。cJSON是一个轻量级的JSON解析器和生成器,可以用于解析和生成JSON数据。
首先,你需要将JSON字符串转换为cJSON对象。在这个例子中,JSON字符串是[{"id":"hc_off","remark":"","value":"0"}]。你可以使用cJSON_Parse函数来解析这个字符串,它会返回一个指向cJSON对象的指针。
接下来,你可以使用cJSON提供的函数来获取JSON对象中的值。在这个例子中,JSON数组中只有一个元素,你可以使用cJSON_GetArrayItem函数来获取数组中的元素。然后,你可以使用cJSON_GetObjectItem函数来获取元素中的具体值。
下面是一个示例代码,演示了如何解析这个JSON数组并获取其中的值:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
const char* json_str = "[{\"id\":\"hc_off\",\"remark\":\"\",\"value\":\"0\"}]";
cJSON* root = cJSON_Parse(json_str);
if (root == NULL) {
printf("Failed to parse JSON: %s\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* item = cJSON_GetArrayItem(root, 0);
cJSON* id = cJSON_GetObjectItem(item, "id");
cJSON* remark = cJSON_GetObjectItem(item, "remark");
cJSON* value = cJSON_GetObjectItem(item, "value");
printf("id: %s\n", id->valuestring);
printf("remark: %s\n", remark->valuestring);
printf("value: %s\n", value->valuestring);
cJSON_Delete(root);
return 0;
}
```
运行这段代码,你将会得到以下输出:
```
id: hc_off
remark:
value: 0
```
这样,你就成功地解析了cjson数组并获取了其中的值。
阅读全文