在現代web開發中,經常會使用ajax技術實現異步請求數據,而json作為一種輕量級的數據傳輸格式,在ajax中也得到了廣泛的應用。對于C語言開發者來說,解析ajax中的json字符串是比較常見的需求。下面介紹一下C語言中解析ajax中json字符串的方法。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(int argc, char *argv[]) { char *json_str = "{\"name\":\"json\",\"age\":20,\"score\":{\"math\":98,\"english\":85}}"; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "解析json字符串出錯:%s\n", error.text); return 1; } json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); json_t *score = json_object_get(root, "score"); json_t *math = json_object_get(score, "math"); json_t *english = json_object_get(score, "english"); printf("name: %s\n", json_string_value(name)); printf("age: %d\n", (int)json_number_value(age)); printf("math score: %d\n", (int)json_number_value(math)); printf("english score: %d\n", (int)json_number_value(english)); json_decref(root); return 0; }
在以上代碼中,我們使用了jansson庫來解析json字符串。首先將json字符串加載到json_t類型的root變量中,使用json_object_get函數獲取json對象中的各個值。需要注意的是,使用不同的json類型,需要使用不同的獲取值的函數。例如json_string_value和json_number_value分別用于獲取字符串類型和數值類型的值。