C語言作為一種底層語言,與數據庫的交互需要使用特定的庫來完成。其中,使用c語言操作mysql數據庫,可以通過調用mysql-c-api庫中的函數來完成。而對于web開發而言,返回json數據類型已經成為了一種很常見的方式,那么如何在c語言中將mysql數據以json格式返回呢?
#include#include #include int main() { MYSQL *con = mysql_init(NULL); mysql_real_connect(con, "localhost", "user", "password", "database", 3306, NULL, 0); MYSQL_RES *res; MYSQL_ROW row; mysql_query(con, "SELECT * FROM mytable"); res = mysql_use_result(con); cJSON *root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "data", cJSON_CreateArray()); while ((row = mysql_fetch_row(res)) != NULL) { cJSON *item = cJSON_CreateObject(); cJSON_AddStringToObject(item, "name", row[0]); cJSON_AddStringToObject(item, "age", row[1]); cJSON_AddItemToArray(cJSON_GetObjectItem(root, "data"), item); } mysql_free_result(res); mysql_close(con); printf("%s\n", cJSON_Print(root)); cJSON_Delete(root); return 0; }
上述代碼使用mysql連接到本地的數據庫,執行SELECT語句將數據以json格式返回。cJSON是一個輕量級的C語言JSON解析庫,它允許我們在c語言中方便地創建、解析和操作JSON數據。
在代碼中,我們先創建了一個空對象root,并為它添加一個名為"data"的數組。然后在while循環中,每次從數據集中讀取一行數據,創建一個新對象item,并將數據以鍵值對的形式添加到item對象中。最后,將item對象添加到"data"數組中。所有的數據處理完成后,將root對象打印成json格式的字符串,即可返回到前端。