JSON是一種常用的數據交換格式,而Model則代表著程序中的對象模型。在C語言中,我們經常需要將JSON數據轉化為對應的Model對象,或將Model對象轉化為JSON數據。
// 一個JSON數據示例 { "name": "小明", "age": 18, "gender": "男", "score": [90, 95, 80] }
為了方便地進行JSON與Model之間的轉換,我們可以使用第三方庫 cJSON。
// cJSON的使用示例 #include "cJSON.h" // 將JSON字符串轉化為cJSON對象 cJSON *json = cJSON_Parse(jsonStr); // 通過cJSON對象獲取對應的值 char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint; // 將cJSON對象轉化為JSON字符串 char *jsonStr = cJSON_Print(json); // 釋放cJSON對象 cJSON_Delete(json);
為了方便地進行Model對象的轉換,我們可以使用結構體來定義我們的Model。
// Model的定義示例 typedef struct { char *name; int age; char *gender; int score[3]; } Student; // 將JSON轉化為Student對象 Student *student = (Student *) malloc(sizeof(Student)); student->name = cJSON_GetObjectItem(json, "name")->valuestring; student->age = cJSON_GetObjectItem(json, "age")->valueint; student->gender = cJSON_GetObjectItem(json, "gender")->valuestring; cJSON *score = cJSON_GetObjectItem(json, "score"); for (int i = 0; i< cJSON_GetArraySize(score); i++) { student->score[i] = cJSON_GetArrayItem(score, i)->valueint; } // 將Student對象轉化為JSON cJSON *json = cJSON_CreateObject(); cJSON_AddStringToObject(json, "name", student->name); cJSON_AddNumberToObject(json, "age", student->age); cJSON_AddStringToObject(json, "gender", student->gender); cJSON *scoreArr = cJSON_CreateIntArray(student->score, 3); cJSON_AddItemToObject(json, "score", scoreArr); char *jsonStr = cJSON_Print(json); // 釋放Student對象和cJSON對象 free(student); cJSON_Delete(json);
使用cJSON庫可以方便地進行JSON與Model之間的轉換,提高我們的編程效率。
上一篇vue fade