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

c 判斷json數(shù)據(jù)中含有某個(gè)字段

C語(yǔ)言用于判斷JSON數(shù)據(jù)中是否包含某個(gè)字段的方法主要是通過(guò)解析JSON數(shù)據(jù),查找其中是否包含指定的鍵值,具體代碼如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int contains_key(json_t* json, const char* key)
{
if (json_is_object(json))
{
const char* json_iter_key;
json_t* json_iter_value;
json_object_foreach(json, json_iter_key, json_iter_value)
{
if (strcmp(json_iter_key, key) == 0)
{
return 1;
}
else if (contains_key(json_iter_value, key))
{
return 1;
}
}
}
else if (json_is_array(json))
{
size_t i;
json_t* json_value;
json_array_foreach(json, i, json_value)
{
if (contains_key(json_value, key))
{
return 1;
}
}
}
return 0;
}
int main()
{
const char* json_data = "{ \"name\": \"Alice\", \"age\": 18 }";
json_error_t error;
json_t* json = json_loads(json_data, 0, &error);
if (!json)
{
printf("Error: %s, line %d\n", error.text, error.line);
exit(1);
}
const char* key = "name";
if (contains_key(json, key))
{
printf("The JSON data contains key \"%s\"\n", key);
}
else
{
printf("The JSON data does not contain key \"%s\"\n", key);
}
return 0;
}

上述代碼中使用了jansson庫(kù),該庫(kù)提供了操作JSON數(shù)據(jù)的方法,其中contains_key函數(shù)用于判斷JSON數(shù)據(jù)中是否包含指定的鍵值。具體做法是先判斷JSON數(shù)據(jù)是否為對(duì)象或數(shù)組,通過(guò)遞歸遍歷每個(gè)鍵值,查找是否與指定鍵值相同。