C語言是一種非常流行的編程語言,而JSON是一種輕量級(jí)的數(shù)據(jù)交換格式。在使用C語言解析JSON時(shí),我們需要處理JSON中的不同屬性值。
#include <stdio.h> #include <jansson.h> int main() { char *json_str = "{\"name\": \"Tom\", \"age\": 20, \"is_student\": true}"; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); // 解析JSON字符串 if(!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } const char *name; int age; int is_student; // 從JSON解析出屬性值 json_unpack(root, "{s:s, s:i, s:b}", "name", &name, "age", &age, "is_student", &is_student); printf("Name: %s\n", name); printf("Age: %d\n", age); printf("Is student: %s\n", is_student ? "yes" : "no"); json_decref(root); return 0; }
上面的代碼中,我們定義了一個(gè)JSON字符串作為輸入,并使用`json_loads`函數(shù)將其解析成一個(gè)JSON對象。然后,我們通過`json_unpack`函數(shù)從JSON對象中提取出`name`、`age`和`is_student`三個(gè)屬性的值,并將它們賦值給變量。最后,我們將變量的值打印出來。
需要注意的是,C語言中的布爾類型對應(yīng)著JSON中的布爾值,而字符串和整數(shù)類型則直接對應(yīng)著JSON中的字符串和數(shù)字類型。