Json是一種輕量級(jí)的數(shù)據(jù)交換格式,非常適用于WEB應(yīng)用程序之間的數(shù)據(jù)傳輸。而C語言是一種高級(jí)編程語言,也可以通過C語言來操作Json字符串。在C語言中,需要使用一些庫函數(shù)來幫助我們調(diào)用和解析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; }
在上面的示例代碼中,我們調(diào)用了JSON-C庫中的json_loads()函數(shù)來加載Json字符串。該函數(shù)會(huì)返回一個(gè)json_t類型的對(duì)象,該對(duì)象包含從Json字符串中解析出來的數(shù)據(jù)內(nèi)容。
我們使用json_object_get()函數(shù)來獲取Json對(duì)象中的具體屬性值,并使用json_is_object()函數(shù)檢查對(duì)象是否為Json對(duì)象類型。接下來,我們使用其他json_xxx_xxx()函數(shù)來獲取json_t類型對(duì)象中存儲(chǔ)的具體數(shù)據(jù)內(nèi)容。
最后,我們需要使用json_decref()函數(shù)來釋放json_t類型的對(duì)象所占用的內(nèi)存空間。