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

c json字符串獲取屬性

林國瑞2年前9瀏覽0評論

在C語言中使用JSON,我們經常需要從JSON字符串中獲取某個屬性的值。下面我們將介紹如何在C語言中獲取JSON字符串中屬性的值。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main() {
const char *json_str = "{\"code\":200,\"msg\":\"success\",\"data\":{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}}";
json_error_t error;
json_t *root = json_loads(json_str, 0, &error);
if (!root) {
fprintf(stderr, "error: json_loads\n");
return EXIT_FAILURE;
}
json_t *data = json_object_get(root, "data");
if (!data) {
fprintf(stderr, "error: json_object_get\n");
json_decref(root);
return EXIT_FAILURE;
}
json_t *name = json_object_get(data, "name");
if (!name) {
fprintf(stderr, "error: json_object_get\n");
json_decref(root);
return EXIT_FAILURE;
}
if (!json_is_string(name)) {
fprintf(stderr, "error: json_is_string\n");
json_decref(root);
return EXIT_FAILURE;
}
const char *value = json_string_value(name);
if (!value) {
fprintf(stderr, "error: json_string_value\n");
json_decref(root);
return EXIT_FAILURE;
}
printf("name: %s\n", value);
json_decref(root);
return EXIT_SUCCESS;
}

以上代碼會從JSON字符串中獲取"name"屬性的值,并輸出到控制臺。

首先,我們需要使用json_loads()函數將JSON字符串轉化為JSON對象。該函數的第三個參數是錯誤信息,如果轉化失敗,會返回錯誤信息并退出程序。

接下來,我們使用json_object_get()函數獲取JSON對象中的"data"屬性,并判斷是否存在。如果不存在,會返回錯誤信息并退出程序。

然后,我們使用json_object_get()函數獲取JSON對象中的"name"屬性,并判斷是否存在。如果不存在,會返回錯誤信息并退出程序。同時,我們還需要使用json_is_string()函數判斷"name"屬性的值是否為字符串類型。

最后,我們使用json_string_value()函數獲取"name"屬性的值,并將其輸出到控制臺。