JSON(JavaScript 對(duì)象表示法)是一種輕量級(jí)數(shù)據(jù)交換格式,已經(jīng)成為了互聯(lián)網(wǎng)應(yīng)用間數(shù)據(jù)交互的首選格式。C語(yǔ)言中可以使用第三方庫(kù)實(shí)現(xiàn)JSON的字符串轉(zhuǎn)對(duì)象操作。其中,使用較為廣泛的是 cJSON 庫(kù)。
這里提供一個(gè)簡(jiǎn)單的使用 cJSON 庫(kù)將 JSON 字符串轉(zhuǎn)為 C 對(duì)象的示例代碼:
#include#include #include "cJSON.h" int main() { char *jsonStr = "{\"name\": \"Tom\", \"age\": 20}"; cJSON *data = cJSON_Parse(jsonStr); if (data == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return -1; } cJSON *name = cJSON_GetObjectItem(data, "name"); if (cJSON_IsString(name) && (name->valuestring != NULL)) { printf("name: %s\n", name->valuestring); } cJSON *age = cJSON_GetObjectItem(data, "age"); if (cJSON_IsNumber(age)) { printf("age: %d\n", age->valueint); } cJSON_Delete(data); return 0; }
以上示例為將 JSON 字符串{"name": "Tom", "age": 20}
轉(zhuǎn)為 C 對(duì)象,并打印了其中的 name 和 age 字段。需要注意的是,在使用 cJSON 庫(kù)進(jìn)行字符轉(zhuǎn)對(duì)象操作時(shí),需要注意處理返回的 cJSON 對(duì)象指針,以及使用 cJSON_IsX 和 cJSON_GetX 方法對(duì)具體字段進(jìn)行類型和值的處理。