Terminal={“soft_version”:“v1.0.0”, //端侧主机程序版本 “det_version”:“v1.2.5” //端侧主机检测模型版本 }怎么用c语言的json库解析出来
时间: 2023-09-15 18:22:27 浏览: 56
同样假设您使用的是 cJSON 库,可以按照以下方式编写代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
// 定义 JSON 字符串
const char *json_str = "{\"soft_version\":\"v1.0.0\",\"det_version\":\"v1.2.5\"}";
// 解析 JSON 字符串
cJSON *terminal = cJSON_Parse(json_str);
if (!terminal) {
printf("Error before: %s\n", cJSON_GetErrorPtr());
return 1;
}
// 获取 JSON 属性
cJSON *soft_version = cJSON_GetObjectItemCaseSensitive(terminal, "soft_version");
cJSON *det_version = cJSON_GetObjectItemCaseSensitive(terminal, "det_version");
// 输出 JSON 属性值
printf("soft_version: %s\n", cJSON_GetStringValue(soft_version));
printf("det_version: %s\n", cJSON_GetStringValue(det_version));
// 释放内存
cJSON_Delete(terminal);
return 0;
}
```
输出结果为:
```
soft_version: v1.0.0
det_version: v1.2.5
```
这个程序首先定义了一个 JSON 字符串 `json_str`,然后使用 `cJSON_Parse` 函数将其解析为 cJSON 对象 `terminal`。如果解析失败,会输出错误信息并退出程序。然后使用 `cJSON_GetObjectItemCaseSensitive` 函数获取 JSON 属性对象,并使用 `cJSON_GetStringValue` 函数获取属性值。最后释放内存。
阅读全文