JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。在使用C語言進行數據處理時,JSON作為數據存儲格式的應用越來越廣泛。C語言中提供了許多現成的JSON解析庫,本文將介紹如何將JSON數據轉換為C語言對象。
步驟一:引入JSON解析庫
#include "cJSON.h"
步驟二:定義JSON字符串和C語言對象結構體
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結構體 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對象 cJSON_Delete(json);
至此,我們成功地將JSON字符串轉換為C語言對象。需要注意的是,使用完cJSON_Parse函數得到的JSON對象之后,需要緊接著使用cJSON_Delete函數來釋放內存空間,防止內存泄漏。