C語言是一種高效、快速、功能強大的編程語言,廣泛應用于各種計算機系統(tǒng)。MySQL是目前全球使用最廣泛的開源關系型數(shù)據(jù)庫管理系統(tǒng)。為了將C語言與MySQL相結合,我們需要使用MySQL C API。通過MySQL C API,我們可以在C語言中使用MySQL,執(zhí)行各種查詢操作等。MySQL中查詢出來的數(shù)據(jù)通常以JSON字符串的形式返回,這就需要我們在C語言中對JSON字符串進行格式化處理。
//JSON字符串格式化 #include#include #include #include #include #include void format_json(char* json_str) { cJSON* root = cJSON_Parse(json_str); char* formatted = cJSON_Print(root); printf("Formatted JSON:\n%s\n", formatted); cJSON_Delete(root); free(formatted); } int main() { MYSQL mysql; mysql_init(&mysql); mysql_real_connect(&mysql, "localhost", "root", "123456", "test", 0, NULL, 0); mysql_query(&mysql, "SELECT * FROM users"); MYSQL_RES* result = mysql_store_result(&mysql); int num_fields = mysql_num_fields(result); MYSQL_ROW row; cJSON* json = cJSON_CreateArray(); while ((row = mysql_fetch_row(result))) { cJSON* obj = cJSON_CreateObject(); for (int i = 0; i< num_fields; i++) { cJSON_AddStringToObject(obj, mysql_field_name(result, i), row[i]); } cJSON_AddItemToArray(json, obj); } char* json_str = cJSON_Print(json); printf("Original JSON:\n%s\n", json_str); format_json(json_str); cJSON_Delete(json); mysql_free_result(result); mysql_close(&mysql); return 0; }
在上面的示例代碼中,我們首先初始化MySQL連接,并執(zhí)行查詢操作獲取到結果集,然后使用cJSON庫在C語言中創(chuàng)建一個JSON數(shù)組,循環(huán)遍歷結果集中的每一行數(shù)據(jù),將其以鍵值對的形式添加到JSON對象中,并將每個對象添加到JSON數(shù)組中。之后,將JSON數(shù)組序列化為JSON格式的字符串,并且輸出原始JSON字符串和格式化后的JSON字符串。最后,釋放內存并關閉MySQL連接。