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

c json串怎么取值

呂致盈2年前7瀏覽0評論

C JSON 串是一種用于存儲和交換數據的格式,它以簡潔的形式表示復雜的數據結構。在處理 JSON 串時,我們常常需要從中提取特定的數據,這就需要用到 JSON 解析器。本篇文章將介紹如何使用 C 語言解析 JSON 串并取值。

#include <stdio.h>
#include <jansson.h>
int main() {
char * json_string = "{ \"name\": \"Alice\", \"age\": 25, \"children\": [\"Bob\", \"Charlie\", \"David\"] }";
json_error_t error;
json_t * root = json_loads(json_string, 0, &error);
if (root == NULL) {
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
return 1;
}
json_t * name = json_object_get(root, "name");
const char * name_value = json_string_value(name);
json_t * age = json_object_get(root, "age");
int age_value = json_integer_value(age);
json_t * children = json_object_get(root, "children");
size_t i;
json_t * child;
const char * child_value;
printf("Name: %s\nAge: %d\nChildren:\n", name_value, age_value);
json_array_foreach(children, i, child) {
child_value = json_string_value(child);
printf("  %s\n", child_value);
}
json_decref(root);
return 0;
}

上述代碼通過 jansson 庫提供的函數實現了對 JSON 串的解析和取值。首先通過 json_loads 函數將 JSON 串解析成一個 json_t 類型的數據結構,然后使用 json_object_get 函數從根節點中獲取指定名稱的子節點。對于字符串類型的節點,可以使用 json_string_value 函數獲取其值;對于整數類型的節點,可以使用 json_integer_value 函數獲取其值。如果節點是數組類型的,可以使用 json_array_foreach 函數遍歷數組并獲取其中的元素值。最后使用 json_decref 函數釋放數據結構,以防止內存泄漏。