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

c 取json中的值

方一強2年前8瀏覽0評論

在使用C語言解析JSON(JavaScript Object Notation)數(shù)據(jù)時,我們需要使用第三方庫來進(jìn)行操作,常用的有cJSON、Jansson等。

首先,我們需要將JSON數(shù)據(jù)解析為C語言中的結(jié)構(gòu)體或數(shù)組,cJSON庫提供了一些函數(shù)來實現(xiàn)這個功能,例如cJSON_Parse()函數(shù)可以將JSON數(shù)據(jù)字符串解析為cJSON結(jié)構(gòu)體。

#include <stdio.h>
#include <cJSON.h>
int main() {
char* json_str = "{ \"name\": \"Tom\", \"age\": 18, \"gender\": \"male\" }";
cJSON* json = cJSON_Parse(json_str);
if (json) {
cJSON* name = cJSON_GetObjectItem(json, "name");
cJSON* age = cJSON_GetObjectItem(json, "age");
cJSON* gender = cJSON_GetObjectItem(json, "gender");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("Gender: %s\n", gender->valuestring);
cJSON_Delete(json);
}
return 0;
}

在上述代碼中,我們先定義了一個JSON數(shù)據(jù)字符串json_str,然后使用cJSON_Parse()函數(shù)將它解析為一個cJSON結(jié)構(gòu)體,接著使用cJSON_GetObjectItem()函數(shù)取出其中的值,最后輸出到控制臺中。

需要注意的是,cJSON_GetObjectItem()返回的是cJSON結(jié)構(gòu)體中的子元素,我們需要根據(jù)取出來的值的類型使用不同的取值函數(shù),例如valuestring和valueint用于取出字符串類型和整數(shù)類型的值。

在嘗試取值之前,我們需要先判斷解析是否成功,如果cJSON_Parse()返回NULL,則說明解析失敗,我們需要釋放內(nèi)存并退出程序。

if (json == NULL) {
printf("JSON parse error: %s\n", cJSON_GetErrorPtr());
cJSON_Delete(json);
return -1;
}

以上就是在C語言中取JSON中的值的基本用法。