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

c json 取值

呂致盈2年前8瀏覽0評論

C JSON 是一種常用的數(shù)據(jù)交換格式,它很容易被各種編程語言解析和生成。在使用 C 語言來解析 JSON 數(shù)據(jù)時(shí),我們需要使用第三方庫來方便地進(jìn)行操作。而在 C JSON 中,我們可以通過鍵來取值。

#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
char *json_string = "{\"name\": \"John Smith\", \"age\": 35, \"gender\": true}";
cJSON *json = cJSON_Parse(json_string);
if (json) {
cJSON *name = cJSON_GetObjectItem(json, "name");
if (name && cJSON_IsString(name)) {
printf("name: %s\n", name->valuestring);
}
cJSON *age = cJSON_GetObjectItem(json, "age");
if (age && cJSON_IsNumber(age)) {
printf("age: %d\n", age->valueint);
}
cJSON *gender = cJSON_GetObjectItem(json, "gender");
if (gender && cJSON_IsBool(gender)) {
printf("gender: %s\n", gender->valueint ? "male" : "female");
}
cJSON_Delete(json);
}
return 0;
}

在上面的代碼中,我們首先定義了一個(gè) JSON 字符串,然后使用cJSON_Parse()函數(shù)將其解析成一個(gè) cJSON 對象。接著,我們使用cJSON_GetObjectItem()函數(shù)根據(jù)鍵獲取值。注意,我們需要使用cJSON_IsString()、cJSON_IsNumber()cJSON_IsBool()等函數(shù)來判斷值的類型,然后才能調(diào)用相應(yīng)的獲取函數(shù)(如cJSON_GetString()、cJSON_GetNumber()、cJSON_IsBool())。最后,我們使用cJSON_Delete()函數(shù)釋放 cJSON 對象所占用的內(nèi)存。

除了使用cJSON_GetObjectItem()函數(shù),我們也可以使用cJSON_GetObjectItemCaseSensitive()函數(shù)來獲取值。這兩個(gè)函數(shù)的區(qū)別在于,前者會忽略鍵的大小寫,而后者則不會。這在鍵區(qū)分大小寫的情況下很有用。

cJSON *value = cJSON_GetObjectItemCaseSensitive(json, "Key");

相信通過這篇文章的介紹,你已經(jīng)對 C JSON 的取值操作有了一定的了解。在實(shí)際編程時(shí),我們需要根據(jù)自己的需求靈活運(yùn)用這些 API,來完成對 JSON 數(shù)據(jù)的解析和生成。