在C語言中操作JSON很常見,常用的操作就是將JSON字符串轉(zhuǎn)為字典。以下是一個簡單的例子:
#include <stdio.h> #include <jansson.h> int main() { const char* json_str = "{\"name\": \"張三\", \"age\": 18}"; json_error_t error; json_t* root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "Failed to parse JSON: %s\n", error.text); return 1; } const char* name = json_string_value(json_object_get(root, "name")); printf("name: %s\n", name); long age = json_integer_value(json_object_get(root, "age")); printf("age: %ld\n", age); json_decref(root); return 0; }
首先,我們需要從標(biāo)準(zhǔn)庫json.h中導(dǎo)入json包,然后定義一個JSON字符串,并且創(chuàng)建一個json_t類型的指針root來保存轉(zhuǎn)換后的字典。接著,我們調(diào)用json_loads函數(shù)將JSON字符串轉(zhuǎn)換為字典,同時也進(jìn)行了錯誤處理。如果JSON字符串無法轉(zhuǎn)換,則輸出錯誤信息并且返回1。
然后,我們使用json_object_get函數(shù)從字典中獲取name和age的值,并且使用json_string_value和json_integer_value分別將其轉(zhuǎn)換為字符串和整數(shù)類型。
最后,我們釋放root的內(nèi)存并且返回0,表示成功執(zhí)行。