在C語言中,我們經常需要把JSON字符串轉成DataTable,這樣可以更方便地處理數據。下面我們來介紹一下如何進行字符串轉換。
// 首先需要引入相應的頭文件 #include <stdio.h> #include <jansson.h> // 將JSON字符串轉成DataTable void json_string_to_datatable(const char* json_string, int length, DataTable* datatable) { // 創(chuàng)建JSON對象并解析字符串 json_t* root = json_loadb(json_string, length, JSON_ALLOW_NUL, NULL); if (!root) { printf("JSON字符串解析失敗"); return; } // 判斷是否為JSON對象 if (json_is_object(root)) { json_t* value; const char* key; DataTableRow* row = NULL; // 遍歷JSON對象的所有屬性值 json_object_foreach(root, key, value) { if (json_is_array(value)) { DataTableColumn* column = datatable_add_column(datatable, key); for (size_t i = 0; i < json_array_size(value); i++) { // 根據JSON數組中的位置創(chuàng)建新的行 if (!row || i >= datatable_row_get_index(row) + datatable_row_get_length(row)) { row = datatable_add_row(datatable); } // 添加到表的單元格中 char* cell_value = json_string_value(json_array_get(value, i)); datatable_cell_set_value(row, column, cell_value, strlen(cell_value)); } } } } // 釋放JSON對象內存 json_decref(root); }
在該代碼中,我們首先需要引入相應的頭文件,并創(chuàng)建JSON對象來解析JSON字符串。然后,通過遍歷JSON對象的屬性值,我們可以判斷是否為JSON數組,并將其轉換成DataTable類型的數據。最后,需要釋放JSON對象內存。
上一篇html彈話框代碼
下一篇html當天日期代碼