在C語言中定義變量接收J(rèn)SON數(shù)據(jù)類型十分簡單。事實(shí)上,C語言中并沒有專門的JSON數(shù)據(jù)類型,但我們可以通過結(jié)構(gòu)體來模擬JSON對象。
舉例來說,如果我們有如下的JSON對象:
{ "name": "張三", "age": 20, "gender": "男", "hobbies": ["籃球", "游泳"] }
我們可以定義如下的結(jié)構(gòu)體:
typedef struct { char *name; int age; char *gender; char **hobbies; } Person;
當(dāng)我們接收到JSON數(shù)據(jù)后,可以使用json-c庫將其轉(zhuǎn)換為json_object類型,然后再解析為我們定義的Person結(jié)構(gòu)體。
#include//接收J(rèn)SON數(shù)據(jù) char *json_str = "{\"name\":\"張三\",\"age\":20,\"gender\":\"男\(zhòng)",\"hobbies\":[\"籃球\",\"游泳\"]}"; //將JSON數(shù)據(jù)轉(zhuǎn)為json_object類型 struct json_object *json_obj = json_tokener_parse(json_str); //從json_object中解析出Person結(jié)構(gòu)體 Person person; json_object_object_get_ex(json_obj, "name", &name_obj); name = (char *)json_object_get_string(name_obj); person.name = name; json_object_object_get_ex(json_obj, "age", &age_obj); age = json_object_get_int(age_obj); person.age = age; //以此類推解析gender和hobbies字段... //釋放json_object json_object_put(json_obj);
以上就是使用C語言定義變量接收J(rèn)SON數(shù)據(jù)類型的簡單實(shí)現(xiàn)方法。