C语言不使用Cjson库将一下json串中的键值都提取出来{ "message":"", "reason":"", "res":{ "deviceInfo":null, "iotMqttInfo":null, "status":"NOTFOUND" }
时间: 2023-09-02 07:05:40 浏览: 67
从格式不确定的json中读取键值对
4星 · 用户满意度95%
}这个问题可以使用C语言的字符串处理函数和循环来解决。以下是一个可能的实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char json[] = "{ \"message\":\"\", \"reason\":\"\", \"res\":{ \"deviceInfo\":null, \"iotMqttInfo\":null, \"status\":\"NOTFOUND\" }}";
char *token = strtok(json, "{}\":,");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, "{}\":,");
}
return 0;
}
```
在这个实现中,我们使用 `strtok` 函数来将字符串 `json` 按照大括号、双引号和逗号分隔成多个子字符串。每个子字符串都是一个键或值。我们将每个子字符串打印出来,从而提取出了所有的键和值。输出结果如下:
```
message
reason
res
deviceInfo
null
iotMqttInfo
null
status
NOTFOUND
```
阅读全文