C JSON.net 是一種流行的 C 語(yǔ)言 JSON 庫(kù),常用于解析 JSON 數(shù)據(jù)。 反序列化是將 JSON 數(shù)據(jù)轉(zhuǎn)換為 C 語(yǔ)言內(nèi)存結(jié)構(gòu)的過(guò)程,這使得可以在應(yīng)用程序中直接使用數(shù)據(jù)。C JSON.net 提供了方便易用的反序列化方法。
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main(void) {
char* json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
cJSON* json = cJSON_Parse(json_str);
const cJSON* name = cJSON_GetObjectItemCaseSensitive(json, "name");
const cJSON* age = cJSON_GetObjectItemCaseSensitive(json, "age");
const cJSON* city = cJSON_GetObjectItemCaseSensitive(json, "city");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("City: %s\n", city->valuestring);
cJSON_Delete(json);
return 0;
}
上面的代碼解析了一個(gè) JSON 數(shù)據(jù)字符串,獲取了其中的三個(gè)屬性值,并在控制臺(tái)上輸出了這些值。首先,我們使用 cJSON_Parse 函數(shù)將 JSON 字符串解析為一個(gè) cJSON 對(duì)象。然后,使用 cJSON_GetObjectItemCaseSensitive 函數(shù)獲取該對(duì)象的具有指定鍵值的值(這里是 "name"、"age" 和 "city")。最后,我們打印這些值并釋放 cJSON 對(duì)象的內(nèi)存。
C JSON.net 還支持其他類型的解析和反序列化操作,例如解析數(shù)組、解析數(shù)字、解析布爾值等等。無(wú)論哪種類型的操作,C JSON.net 都提供了簡(jiǎn)單易用的 API。