JSON(JavaScript Object Notation,JavaScript 對象表示法)是一種輕量級數(shù)據(jù)交換格式,常用于客戶端和服務(wù)器之間的數(shù)據(jù)傳輸,在 C 語言中,我們也可以使用 JSON 和對象相互轉(zhuǎn)換。
在 C 中,一個JSON對象采用 key-value 的存儲方式,可以使用 cJSON 庫來解析和構(gòu)造 JSON。
#include <stdio.h> #include <cJSON.h> int main() { // 創(chuàng)建一個JSON對象,key 為 name,value 為 John cJSON* json = cJSON_CreateObject(); cJSON_AddStringToObject(json, "name", "John"); // 將JSON對象轉(zhuǎn)換為字符串 char* json_str = cJSON_Print(json); printf("JSON string: %s\n", json_str); // 從字符串解析出JSON對象 cJSON* new_json = cJSON_Parse(json_str); const char* name = cJSON_GetObjectItem(new_json, "name")->valuestring; printf("Name: %s\n", name); // 釋放內(nèi)存 cJSON_Delete(json); cJSON_Delete(new_json); free(json_str); return 0; }
上述代碼中,我們使用 cJSON_CreateObject 函數(shù)創(chuàng)建一個空的 JSON 對象,然后使用 cJSON_AddStringToObject 函數(shù)添加一個 key 為 name,value 為 John 的數(shù)據(jù)。接著,我們使用 cJSON_Print 函數(shù)將 JSON 對象轉(zhuǎn)換為字符串,并輸出到控制臺。
然后,我們又使用 cJSON_Parse 函數(shù)將 JSON 字符串解析為一個新的 JSON 對象,并使用 cJSON_GetObjectItem 函數(shù)獲取其中的 name 值,并輸出到控制臺。
最后,我們使用 cJSON_Delete 函數(shù)釋放創(chuàng)建的 JSON 對象和解析出的 JSON 對象,并使用 free 函數(shù)釋放 JSON 字符串占用的內(nèi)存。
通過 cJSON 庫,我們可以很方便地進(jìn)行 JSON 和對象之間的轉(zhuǎn)換,方便了程序員在 C 中進(jìn)行 JSON 數(shù)據(jù)的處理。