c语言解析json格式
时间: 2023-03-26 16:02:54 浏览: 159
C语言可以通过使用第三方库来解析JSON格式,例如cJSON、Jansson等。这些库提供了API来解析JSON格式的数据,并将其转换为C语言中的数据类型,例如数组、字符串、数字等。使用这些库可以方便地在C语言中处理JSON格式的数据。
相关问题
C语言解析JSON格式
C语言中解析JSON格式可以使用第三方库,如cJSON库。
cJSON是一个轻量级的JSON解析库,可以在C语言中使用。以下是使用cJSON库解析JSON格式的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
char* json_string = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
cJSON* root = cJSON_Parse(json_string);
if (root == NULL) {
printf("Error parsing JSON: %s\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* name = cJSON_GetObjectItemCaseSensitive(root, "name");
if (cJSON_IsString(name) && (name->valuestring != NULL)) {
printf("Name: %s\n", name->valuestring);
}
cJSON* age = cJSON_GetObjectItemCaseSensitive(root, "age");
if (cJSON_IsNumber(age)) {
printf("Age: %d\n", age->valueint);
}
cJSON* city = cJSON_GetObjectItemCaseSensitive(root, "city");
if (cJSON_IsString(city) && (city->valuestring != NULL)) {
printf("City: %s\n", city->valuestring);
}
cJSON_Delete(root);
return 0;
}
```
在这个示例中,我们先定义了一个JSON格式的字符串,然后使用cJSON_Parse()函数将其解析为cJSON对象。接着使用cJSON_GetObjectItemCaseSensitive()函数获取JSON对象中的各个属性,并判断属性的类型,最后将属性的值输出。
需要注意的是,使用cJSON库时需要在代码中包含cJSON.h头文件,并在链接时链接cJSON库。
C语言解析JSON格式的 "data":[ {"val":"1.2","name":"create"}, {"val":"5.0","name":"mune"}, {"val":"1","name":"opeState"} ],
C语言解析JSON格式可以使用第三方库,例如cJSON。cJSON是一个轻量级的JSON解析器,可以在C语言中使用。以下是使用cJSON解析该JSON格式的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
char *json_str = "{\"data\":[{\"val\":\"1.2\",\"name\":\"create\"},{\"val\":\"5.0\",\"name\":\"mune\"},{\"val\":\"1\",\"name\":\"opeState\"}]}";
cJSON *root = cJSON_Parse(json_str);
cJSON *data = cJSON_GetObjectItem(root, "data");
int size = cJSON_GetArraySize(data);
for (int i = 0; i < size; i++) {
cJSON *item = cJSON_GetArrayItem(data, i);
char *val = cJSON_GetObjectItem(item, "val")->valuestring;
char *name = cJSON_GetObjectItem(item, "name")->valuestring;
printf("val: %s, name: %s\n", val, name);
}
cJSON_Delete(root);
return 0;
}
```
该代码首先定义了一个JSON字符串,然后使用cJSON_Parse函数将其解析为一个cJSON对象。接着使用cJSON_GetObjectItem函数获取data数组,并使用cJSON_GetArraySize函数获取数组大小。最后使用cJSON_GetArrayItem和cJSON_GetObjectItem函数获取数组元素的val和name属性,并打印输出。最后使用cJSON_Delete函数释放内存。
阅读全文