在C語言中,二維數組轉json是一個非常常見的需求。JSON是一種輕量級的數據交換格式,常用于Web應用程序中。通過將二維數組轉換為JSON格式,我們可以方便地將數據傳遞到Web應用程序中,以便進行進一步的處理。要實現此目標,我們需要使用C JSON庫。
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> int main() { int i, j; int rows = 2; int cols = 3; int data[2][3] = {{1, 2, 3}, {4, 5, 6}}; cJSON *root, *array, *row; char *json_string = NULL; // 創建一個JSON對象 root = cJSON_CreateObject(); // 創建一個JSON數組 array = cJSON_CreateArray(); // 循環創建每一行的JSON對象 for (i = 0; i< rows; i++) { row = cJSON_CreateObject(); // 循環添加每一列的值 for (j = 0; j< cols; j++) { char key[10]; sprintf(key, "col%d", j); cJSON_AddNumberToObject(row, key, data[i][j]); } // 將每一行的JSON對象添加到數組中 cJSON_AddItemToArray(array, row); } // 將JSON數組添加到根對象中 cJSON_AddItemToObject(root, "data", array); // 將JSON對象轉化為字符串 json_string = cJSON_Print(root); printf("%s\n", json_string); // 清理內存 free(json_string); cJSON_Delete(root); return 0; }
以上代碼將一個2行3列的二維整數數組轉換為JSON格式。我們首先創建了一個JSON對象,然后創建了一個JSON數組,并為數組中的每一行創建了一個JSON對象。循環內部,我們為每一列添加了一個鍵值對,其中鍵為“col + 列號”,值為相應的二維數組元素。最后,我們將數組添加到根對象中,并將根對象轉換為字符串。