Json是一種輕量級的數據交換格式,非常適用于WEB應用程序之間的數據傳輸。而C語言是一種高級編程語言,也可以通過C語言來操作Json字符串。在C語言中,需要使用一些庫函數來幫助我們調用和解析Json字符串。
#include <stdio.h> #include <string.h> #include <jansson.h> int main() { char *json_str = "{\"name\": \"Tom\", \"age\": 20, \"sex\": \"male\"}"; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } if (!json_is_object(root)) { fprintf(stderr, "error: root is not an object\n"); json_decref(root); return 1; } json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); json_t *sex = json_object_get(root, "sex"); printf("name: %s\n", json_string_value(name)); printf("age: %d\n", json_integer_value(age)); printf("sex: %s\n", json_string_value(sex)); json_decref(name); json_decref(age); json_decref(sex); json_decref(root); return 0; }
在上面的示例代碼中,我們調用了JSON-C庫中的json_loads()函數來加載Json字符串。該函數會返回一個json_t類型的對象,該對象包含從Json字符串中解析出來的數據內容。
我們使用json_object_get()函數來獲取Json對象中的具體屬性值,并使用json_is_object()函數檢查對象是否為Json對象類型。接下來,我們使用其他json_xxx_xxx()函數來獲取json_t類型對象中存儲的具體數據內容。
最后,我們需要使用json_decref()函數來釋放json_t類型的對象所占用的內存空間。