欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 解析加載json數據

錢浩然1年前10瀏覽0評論

在C語言中,要解析和加載JSON數據,可以使用一些開源庫,例如cJSON、jansson、yajl等等。其中比較常用的是cJSON。

cJSON是一個輕量級的JSON解析器,可以解析JSON格式的字符串并以C語言中的數據結構存儲數據。cJSON存在于單一的.h頭文件中,使用十分方便,只需要包含頭文件即可。

/*
 * 示例代碼:解析JSON數據并打印出對應的值 
 */
#include <stdio.h>
#include <cJSON.h>
int main() {
char* json_data = "{\"name\":\"張三\", \"age\": 23, \"hobby\":[\"basketball\",\"music\"]}";
cJSON* json = cJSON_Parse(json_data);
if (!json) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* name = cJSON_GetObjectItem(json, "name");
cJSON* age = cJSON_GetObjectItem(json, "age");
cJSON* hobby = cJSON_GetObjectItem(json, "hobby");
printf("姓名:%s\n", name->valuestring);
printf("年齡:%d\n", age->valueint);
printf("愛好:\n");
cJSON* hobby_item = NULL;
cJSON_ArrayForEach(hobby_item, hobby) {
printf("%s\n", hobby_item->valuestring);
}
cJSON_Delete(json); // 記得釋放內存
return 0;
}

該示例代碼中,首先定義了一個JSON格式的字符串,接著調用cJSON_Parse函數將json_data解析成CJSON結構體,如果解析失敗則會返回NULL。然后通過cJSON_GetObjectItem函數獲得對應的值,其中需要傳入解析后的CJSON結構體和要獲取值的鍵名。通過該函數獲取到的值是CJSON中的最小單元,可以使用不同的value*類型訪問其值。最后使用cJSON_ArrayForEach函數遍歷數組類型的值。