在C語言中讀取JSON格式數(shù)據(jù)是一項(xiàng)常見的任務(wù)。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,常用于網(wǎng)絡(luò)應(yīng)用之間的數(shù)據(jù)傳輸。本文介紹如何使用C語言讀取JSON格式數(shù)據(jù)。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char* json_str = "{\"name\":\"小明\",\"age\":18,\"gender\":\"male\"}"; json_error_t error; json_t* root = json_loads(json_str, 0, &error); if (!root) { printf("json_loads error : %s\n", error.text); exit(1); } const char *name = json_string_value(json_object_get(root, "name")); int age = json_integer_value(json_object_get(root, "age")); const char* gender = json_string_value(json_object_get(root, "gender")); printf("name: %s\nage: %d\ngender: %s\n", name, age, gender); json_decref(root); return 0; }
在上面的例子中,我們首先定義了一個(gè)JSON字符串,并使用json_loads
函數(shù)將其解析為一個(gè)JSON對象。如果解析失敗,我們將輸出錯(cuò)誤消息,并結(jié)束程序。
接著,我們使用json_object_get
函數(shù)獲取JSON對象的屬性值,并使用json_string_value
和json_integer_value
函數(shù)將其轉(zhuǎn)換為字符串和整數(shù)類型。
最后,我們輸出了獲取到的屬性值,并使用json_decref
函數(shù)釋放了JSON對象的內(nèi)存空間。