在C語言中,JSON(JavaScript Object Notation)是一種常見的數(shù)據(jù)格式,它將數(shù)據(jù)表示為對象。在處理JSON數(shù)據(jù)時(shí),我們需要將其轉(zhuǎn)換為C語言中的對象,這需要使用到一些特殊的函數(shù)庫。
#include <stdio.h> #include <jansson.h> int main() { const char *json_string = "{\"name\":\"Jack\",\"age\":20,\"gender\":\"male\"}"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if(root) { json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); json_t *gender = json_object_get(root, "gender"); if(!json_is_string(name) || !json_is_number(age) || !json_is_string(gender)) { fprintf(stderr, "Error: invalid JSON.\n"); json_decref(root); return 1; } printf("Name: %s\n", json_string_value(name)); printf("Age: %d\n", json_integer_value(age)); printf("Gender: %s\n", json_string_value(gender)); json_decref(root); return 0; } fprintf(stderr, "Error: on line %d: %s\n", error.line, error.text); return 1; }
上述示例代碼使用了jansson庫,該庫提供了很多JSON處理的功能。在代碼中,首先定義了一個(gè)JSON字符串作為輸入數(shù)據(jù),然后使用json_loads函數(shù)將其轉(zhuǎn)換為json_t類型的對象。接下來,可以通過名字獲取該對象中的各個(gè)屬性,并判斷其類型是否正確。最后,釋放對象所占用的內(nèi)存。