C和JSON是兩種非常流行的編程語言,它們的組合可以幫助我們輕松地轉換數據格式。我們可以利用cJSON這個庫將JSON格式的數據轉換成為DataTable。
#include "cJSON.h" #include "datatable.h" ... void jsonToDatatable(char* jsonString){ cJSON* jsonData = cJSON_Parse(jsonString); DataTable* dt = DataTable_new(); cJSON* columnNames = cJSON_GetObjectItem(jsonData, "ColumnNames"); for(int i = 0; i< cJSON_GetArraySize(columnNames); i++){ char* columnName = cJSON_GetArrayItem(columnNames, i)->valuestring; DataTable_AddColumn(dt, columnName); } cJSON* rows = cJSON_GetObjectItem(jsonData, "Rows"); for(int i = 0; i< cJSON_GetArraySize(rows); i++){ cJSON* row = cJSON_GetArrayItem(rows, i); DataTable_AddRow(dt); for(int j = 0; j< cJSON_GetArraySize(row); j++){ cJSON* value = cJSON_GetArrayItem(row, j); if(value->type == cJSON_String){ DataTable_SetString(dt, i, j, value->valuestring); } else if(value->type == cJSON_Number){ DataTable_SetNumber(dt, i, j, value->valuedouble); } else if(value->type == cJSON_True || value->type == cJSON_False){ bool boolValue = value->type == cJSON_True; DataTable_SetBoolean(dt, i, j, boolValue); } } } cJSON_Delete(jsonData); // Do something with the datatable }
上面的代碼中,我們首先使用cJSON_Parse函數將JSON字符串解析成cJSON對象,然后使用cJSON_GetObjectItem函數獲取JSON對象中的ColumnNames和Rows,然后遍歷這些數組,將它們添加到新建的DataTable中。在添加DataTable時,我們使用了數據類型相關的函數進行數據類型轉換。
最后,我們使用cJSON_Delete函數釋放內存,完成了JSON格式到DataTable的轉換過程。
下一篇vue如何拍美食