JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。在使用C語言進(jìn)行數(shù)據(jù)處理時(shí),JSON作為數(shù)據(jù)存儲(chǔ)格式的應(yīng)用越來越廣泛。C語言中提供了許多現(xiàn)成的JSON解析庫,本文將介紹如何將JSON數(shù)據(jù)轉(zhuǎn)換為C語言對(duì)象。
步驟一:引入JSON解析庫
#include "cJSON.h"
步驟二:定義JSON字符串和C語言對(duì)象結(jié)構(gòu)體
char* json_str = "{\"name\":\"Lily\",\"age\":20,\"score\":[98,99,100]}"; typedef struct { char* name; int age; int score[3]; } Student;
步驟三:解析JSON字符串
cJSON* json = cJSON_Parse(json_str); if (json != NULL) { // 取出JSON中的name、age、score屬性值,并賦值給Student結(jié)構(gòu)體 Student stu; stu.name = cJSON_GetObjectItem(json, "name")->valuestring; stu.age = cJSON_GetObjectItem(json, "age")->valueint; cJSON* score_array = cJSON_GetObjectItem(json, "score"); for (int i = 0; i< cJSON_GetArraySize(score_array); i++) { stu.score[i] = cJSON_GetArrayItem(score_array, i)->valueint; } } // 釋放JSON對(duì)象 cJSON_Delete(json);
至此,我們成功地將JSON字符串轉(zhuǎn)換為C語言對(duì)象。需要注意的是,使用完cJSON_Parse函數(shù)得到的JSON對(duì)象之后,需要緊接著使用cJSON_Delete函數(shù)來釋放內(nèi)存空間,防止內(nèi)存泄漏。