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

c 過(guò)濾json空值

C語(yǔ)言是一種廣泛使用的編程語(yǔ)言,在處理JSON文件時(shí),過(guò)濾空值是一個(gè)非常必要的功能。下面將介紹如何在C語(yǔ)言中過(guò)濾JSON空值。

首先,我們需要使用一個(gè)JSON解析庫(kù)。這里以cJSON庫(kù)為例。我們先定義一個(gè)cJSON對(duì)象,然后使用cJSON_Parse函數(shù)將JSON字符串解析成cJSON對(duì)象。

#include <stdio.h>
#include <cJSON.h>
int main() {
char* json_str = "{ \"name\": \"張三\", \"age\": 20, \"gender\": null }";
cJSON* root = cJSON_Parse(json_str);
return 0;
}

上面的代碼中,我們定義了一個(gè)JSON字符串,并使用cJSON_Parse解析成cJSON對(duì)象。接下來(lái),我們需要遍歷這個(gè)cJSON對(duì)象,將其中值為null的鍵值對(duì)過(guò)濾。

#include <stdio.h>
#include <cJSON.h>
void filter_cjson_null(cJSON* root) {
cJSON* item = root->child;
cJSON* next_item = NULL;
while (item != NULL) {
next_item = item->next;
if (item->type == cJSON_NULL) {
cJSON_DeleteItemFromObject(root, item->string);
}
item = next_item;
}
}
int main() {
char* json_str = "{ \"name\": \"張三\", \"age\": null, \"gender\": null }";
cJSON* root = cJSON_Parse(json_str);
filter_cjson_null(root);
char* new_json_str = cJSON_PrintUnformatted(root);
printf("%s\n", new_json_str);
cJSON_Delete(root);
free(new_json_str);
return 0;
}

上面的代碼中,我們定義了一個(gè)名為filter_cjson_null的函數(shù),用于遍歷cJSON對(duì)象,并將值為null的鍵值對(duì)刪除。

在main函數(shù)中,我們首先將JSON字符串解析成cJSON對(duì)象,然后調(diào)用filter_cjson_null函數(shù)過(guò)濾空值。最后,我們使用cJSON_PrintUnformatted函數(shù)將cJSON對(duì)象轉(zhuǎn)換成JSON字符串,并打印到控制臺(tái)上。最后別忘了釋放內(nèi)存。

總之,使用cJSON庫(kù)過(guò)濾JSON空值非常簡(jiǎn)單。只需要遍歷cJSON對(duì)象,并調(diào)用cJSON_DeleteItemFromObject函數(shù)即可。希望本文能幫助到你。