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

c 查找json串中是否包含

錢淋西2年前7瀏覽0評論

在C中查找JSON字符串是否包含某個字段或值是一個常見的需求。如果你使用JSON作為你的數(shù)據(jù)格式,那么很可能需要在C中解析JSON字符串并查找里面的內(nèi)容。以下是一個簡單的例子:

#include <stdio.h>
#include <jansson.h>
int main() {
const char *json_string = "{ \"name\": \"Alice\", \"age\": 25 }";
json_t *json_root = json_loads(json_string, 0, NULL);
json_t *name = json_object_get(json_root, "name");
if(name) {
printf("Found name: %s\n", json_string_value(name));
} else {
printf("Name not found.\n");
}
json_decref(json_root);
return 0;
}

這個例子使用了jansson庫來解析JSON字符串。json_loads函數(shù)將一個JSON字符串轉(zhuǎn)換為一個json_t結構體,json_object_get函數(shù)可以在json_t結構體中查找指定的字段或值。如果找到了指定的字段或值,json_object_get函數(shù)返回一個非空指針,否則返回NULL。

在實際應用中,我們可能需要遍歷整個JSON字符串來查找所有包含指定字段或值的部分。以下是一個例子:

#include <stdio.h>
#include <jansson.h>
void search_json(json_t *json, const char *name) {
if(json_is_object(json)) {
const char *key;
json_t *value;
json_object_foreach(json, key, value) {
if(!strcmp(key, name)) {
printf("Found %s: %s\n", key, json_string_value(value));
}
search_json(value, name);
}
} else if(json_is_array(json)) {
size_t i;
json_t *value;
json_array_foreach(json, i, value) {
search_json(value, name);
}
}
}
int main() {
const char *json_string = "{ \"name\": \"Alice\", \"pets\": [\"cat\", \"dog\", \"hamster\"], \"address\": { \"city\": \"Shanghai\", \"country\": \"China\" } }";
json_t *json = json_loads(json_string, 0, NULL);
search_json(json, "city");
search_json(json, "dog");
json_decref(json);
return 0;
}

這個例子定義了一個名為search_json的函數(shù),它可以遞歸地遍歷JSON字符串中的所有部分,并查找包含指定字段或值的部分。如果找到了指定的字段或值,該函數(shù)將在控制臺上打印相應的信息。在主函數(shù)中,我們演示了如何查找JSON字符串中包含"city"和"dog"的部分。