C語(yǔ)言中的字符串是由字符數(shù)組表示的,這種方式并不支持JSON格式。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,以鍵值對(duì)的形式存儲(chǔ)數(shù)據(jù)。如果要在C語(yǔ)言中處理JSON格式的數(shù)據(jù),需要使用相關(guān)的庫(kù)。
#include <stdio.h> #include <jansson.h> int main() { char *json_string = "{ \"name\": \"Tom\", \"age\": 20 }"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "Error: on line %d: %s\n", error.line, error.text); return 1; } const char *name; json_t *age; if (json_unpack(root, "{s:s, s:o}", "name", &name, "age", &age) != -1) { printf("Name: %s, Age: %d\n", name, json_integer_value(age)); } return 0; }
上面的代碼演示了如何使用jansson庫(kù)來(lái)處理JSON格式的數(shù)據(jù)。首先通過(guò)json_loads函數(shù)將JSON字符串轉(zhuǎn)化為一個(gè)json_t對(duì)象,如果轉(zhuǎn)化失敗會(huì)返回錯(cuò)誤信息。接著可以使用json_unpack函數(shù)來(lái)解析json_t對(duì)象中的內(nèi)容。