色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

cjson庫 json字符串中獲取值

錢斌斌2年前10瀏覽0評論

在處理 JSON 數據時,我們經常需要從 JSON 字符串中獲取特定的值。如何使用 C 語言來完成這個任務?我們可以使用 cjson 庫來解析 JSON 字符串并獲取值。

首先,我們需要引入 cjson 庫的頭文件。

#include <cJSON.h>

接著,我們創建一個 cJSON 對象并解析 JSON 字符串。

cJSON *root = cJSON_Parse(json_string);

其中,json_string 是我們要解析的 JSON 字符串。如果解析失敗,root 將為 NULL。

接著,我們可以通過 cJSON 的接口來獲取 JSON 值。

cJSON *item = cJSON_GetObjectItem(root, "key");

這里,我們通過 cJSON_GetObjectItem 函數獲取名為 "key" 的 JSON 值。如果不存在該鍵值,item 將為 NULL。

然后,我們可以通過 cJSON_Value 子結構來獲取 JSON 值的類型及其內容。

if (item != NULL) {
switch (item->type) {
case cJSON_NULL:
printf("null\n");
break;
case cJSON_False:
printf("false\n");
break;
case cJSON_True:
printf("true\n");
break;
case cJSON_Number:
printf("%g\n", item->valuedouble);
break;
case cJSON_String:
printf("%s\n", item->valuestring);
break;
case cJSON_Array:
printf("[%d]\n", cJSON_GetArraySize(item));
break;
case cJSON_Object:
printf("object\n");
break;
}
}

最后,我們需要釋放 cJSON 對象。

cJSON_Delete(root);

完整代碼如下:

#include <stdlib.h>
#include <stdio.h>
#include <cJSON.h>
int main() {
const char *json_string = "{\"null\":null,\"bool\":true,\"num\":123,\"str\":\"hello\",\"arr\":[1,2,3],\"obj\":{\"key\":\"value\"}}";
cJSON *root = cJSON_Parse(json_string);
if (root == NULL) {
printf("parse error\n");
return 1;
}
cJSON *item = cJSON_GetObjectItem(root, "num");
if (item != NULL) {
switch (item->type) {
case cJSON_NULL:
printf("null\n");
break;
case cJSON_False:
printf("false\n");
break;
case cJSON_True:
printf("true\n");
break;
case cJSON_Number:
printf("%g\n", item->valuedouble);
break;
case cJSON_String:
printf("%s\n", item->valuestring);
break;
case cJSON_Array:
printf("[%d]\n", cJSON_GetArraySize(item));
break;
case cJSON_Object:
printf("object\n");
break;
}
}
cJSON_Delete(root);
return 0;
}