JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,具有易讀、易寫、易解析、易于機器解析、語言無關等優點。而在C語言中,使用JSON數據可以幫助我們進行數據解析和處理。
接下來,我們來介紹一下如何在C語言中取JSON數據。
// 代碼示例 #include <stdio.h> #include <jansson.h> int main() { const char *json_str = "{\"name\":\"Max\",\"age\":25,\"married\":false,\"hobbies\":[\"sports\",\"reading\"]}"; // 解析JSON字符串 json_error_t error; json_t *root = json_loads(json_str, 0, &error); // 取出名為name的字段 json_t *name = json_object_get(root, "name"); printf("name: %s\n", json_string_value(name)); // 取出名為age的字段 json_t *age = json_object_get(root, "age"); printf("age: %d\n", json_integer_value(age)); // 取出名為married的字段 json_t *married = json_object_get(root, "married"); printf("married: %s\n", json_is_true(married) ? "true" : "false"); // 取出名為hobbies的數組 json_t *hobbies = json_object_get(root, "hobbies"); printf("hobbies: "); size_t index; json_t *value; json_array_foreach(hobbies, index, value) { printf("%s ", json_string_value(value)); } printf("\n"); // 釋放JSON對象的內存 json_decref(root); return 0; }
以上代碼中,我們首先定義了一個JSON字符串,用于后續的解析。接著,使用json_loads()函數將JSON字符串解析成一個json_t類型的對象,然后使用json_object_get()和json_array_foreach()函數分別取出對象中的字段和數組數據。
需要注意的是,在使用json_object_get()函數時,我們需要將對象的指針和字段名作為參數傳入,函數將返回對應字段的值。而在使用json_array_foreach()函數時,我們需要將數組的指針和一個處理函數作為參數傳入,函數將遍歷整個數組,將每個元素傳遞給處理函數進行處理。
最后,使用json_decref()函數釋放json_t對象的內存即可。
下一篇vue dw