C語言常用的數據格式是結構體,而JSON格式的數據在網絡傳輸和存儲中非常常見。如果要將從服務器接收到的JSON數據轉換成C語言的結構體,就需要用到解析JSON的工具。本文將介紹如何通過使用CJSON庫將JSON格式的數據轉換成C語言中的字典。
首先需要下載CJSON庫,可以在官網上下載對應的庫文件,或者在終端中使用命令進行安裝。
sudo apt-get install libcjson-dev
安裝成功后,在需要使用的文件中包含頭文件和使用之前聲明的結構體。
#include <stdio.h> #include <cjson/cJSON.h> //聲明結構體 typedef struct { int id; char name[20]; } UserInfo;
接下來就可以根據json數據的格式開始解析,并將解析結果賦值給結構體中對應的屬性。
char* jsonStr = "{\"id\":1,\"name\":\"John\"}"; //解析json數據 cJSON* root = cJSON_Parse(jsonStr); if (root == NULL) { printf("json解析失敗"); return; } //將解析結果賦值給結構體 UserInfo userInfo; cJSON* idJson = cJSON_GetObjectItem(root, "id"); userInfo.id = idJson->valueint; cJSON* nameJson = cJSON_GetObjectItem(root, "name"); strcpy(userInfo.name, nameJson->valuestring);
最后需要手動釋放掉解析出來的cJSON對象。
cJSON_Delete(root);
通過以上步驟,就可以將從服務器接收到的JSON數據成功轉換成C語言中的字典,方便進行后續操作。