在C語言中,JSON是一種通用格式用于數據傳輸和存儲。有時候,我們需要把收到的JSON格式數據轉換成C語言中的數組對象,這時就需要使用C JSON轉對象數組的技術。
C JSON轉對象數組主要涉及到兩個庫: cJSON和JSMN。cJSON是比較常用的一種,因為它使用非常簡單,可以輕松地將JSON字符串轉化為C結構體對象,同時也可以將C結構體對象轉換成JSON字符串。而jsmn的優點在于它的占用空間更小、解析速度更快,但是使用起來相對較為復雜。
#include "cJSON.h" int main(void) { // 創建JSON字符串 const char *jsonStr = "{ \"name\":\"Tom\", \"age\":250 }"; // 解析JSON字符串為JSON對象 cJSON *json = cJSON_Parse(jsonStr); // 獲取JSON對象中的字段 cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON *age = cJSON_GetObjectItem(json, "age"); // 將JSON對象轉為C結構體對象 struct Person { char name[20]; int age; } person; strcpy(person.name, name->valuestring); person.age = age->valueint; // 打印C結構體對象中的數據 printf("Name: %s\n", person.name); printf("Age: %d\n", person.age); // 釋放JSON對象 cJSON_Delete(json); return 0; }
在這個示例代碼中,我們使用了cJSON的函數來將JSON字符串解析為JSON對象,并使用cJSON_GetObjectItem函數來獲取JSON對象中的字段。接著,我們將獲取的字段數據轉換成C結構體對象。最后,我們打印了C結構體對象中的數據。
在實際開發中,我們可以使用cJSON庫輕松實現JSON數據和C語言結構體的相互轉換。
上一篇python 擇時 選股
下一篇html屬性代碼是什么