C語言是一種廣泛應用于計算機編程領域的編程語言。在很多應用中,我們需要使用C語言來操作數據庫中的數據。而在Web開發中,JSON數據格式是一種非常重要的數據格式。那么,如何使用C語言將數據庫中的數據拼接成符合JSON格式的數據呢?
下面來介紹一個實現方法,先通過SQL語句獲取數據庫查詢結果集,然后遍歷結果集,將每行結果轉換成JSON格式數據,最后將所有JSON格式的數據拼接成一個符合JSON格式的字符串。下面是示例代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql.h> int main(){ MYSQL *conn_ptr; MYSQL_RES *res_ptr; MYSQL_ROW sqlrow; char *sql; char buffer[2048] = {0}; conn_ptr = mysql_init(NULL); if (!mysql_real_connect(conn_ptr, "localhost", "username", "password", NULL, 0, NULL, 0)) { fprintf(stderr, "Failed to connect to MySQL: Error: %s\n", mysql_error(conn_ptr)); } else { sql = "select * from table_name limit 10;"; if (mysql_query(conn_ptr, sql)) { fprintf(stderr, "Query error: %s\n", mysql_error(conn_ptr)); return -1; } res_ptr = mysql_store_result(conn_ptr); if (!res_ptr) { fprintf(stderr, "Could not retrieve result set: %s\n", mysql_error(conn_ptr)); return -1; } strcat(buffer, "{\"data\": ["); int row_count = mysql_num_rows(res_ptr); int i; for (i = 0; i< row_count; i++) { sqlrow = mysql_fetch_row(res_ptr); if (i == 0) strcat(buffer, "{"); else strcat(buffer, ",{"); strcat(buffer, "\"id\":"); strcat(buffer, sqlrow[0]); strcat(buffer, ","); strcat(buffer, "\"name\":\""); strcat(buffer, sqlrow[1]); strcat(buffer, "\","); strcat(buffer, "\"age\":"); strcat(buffer, sqlrow[2]); strcat(buffer, "}"); } strcat(buffer, "]}"); printf("%s\n", buffer); mysql_free_result(res_ptr); } mysql_close(conn_ptr); return 0; }
該代碼使用MySQL C API連接MySQL數據庫,執行SQL語句,獲取查詢結果集,將每行結果轉換成JSON格式數據,并將所有JSON格式數據拼接成一個符合JSON格式的字符串??梢钥闯?,這種方法實現起來比較簡單,代碼也比較清晰易懂,是一種比較常見的將C數據庫數據拼接JSON數據的實現方法。
上一篇c#字符串轉為json