C語(yǔ)言是一種高級(jí)編程語(yǔ)言,常常用于系統(tǒng)編程以及應(yīng)用程序開(kāi)發(fā)。在使用C語(yǔ)言編寫(xiě)應(yīng)用程序時(shí),常需要通過(guò)SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)。而在查詢結(jié)果需要返回給前端使用時(shí),通常需要將數(shù)據(jù)以JSON格式返回。
//C語(yǔ)言調(diào)用SQL查詢并將結(jié)果轉(zhuǎn)化為JSON格式返回 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<mysql/mysql.h> #include<json-c/json.h> int main() { MYSQL* mysql; MYSQL_RES* result; MYSQL_ROW row; //連接數(shù)據(jù)庫(kù) mysql = mysql_init(NULL); mysql_real_connect(mysql, "localhost", "root", "password", "database", 0, NULL, 0); //構(gòu)造SQL查詢語(yǔ)句并執(zhí)行 char* query = "SELECT * FROM table"; mysql_query(mysql, query); //獲取查詢結(jié)果并轉(zhuǎn)化為JSON格式 result = mysql_use_result(mysql); json_object* jobj = json_object_new_array(); while ((row = mysql_fetch_row(result))) { json_object* jrow = json_object_new_object(); json_object_object_add(jrow, "name", json_object_new_string(row[0])); json_object_object_add(jrow, "age", json_object_new_int(atoi(row[1]))); json_object_array_add(jobj, jrow); } char* json_str = json_object_to_json_string(jobj); //輸出JSON格式字符串 printf("%s", json_str); //釋放資源 json_object_put(jobj); mysql_free_result(result); mysql_close(mysql); return 0; }
上述代碼中,通過(guò)C語(yǔ)言調(diào)用MySQL API連接數(shù)據(jù)庫(kù)并執(zhí)行SQL查詢語(yǔ)句,獲取數(shù)據(jù)后使用JSON-C庫(kù)將結(jié)果轉(zhuǎn)化為JSON格式字符串。最后通過(guò)printf函數(shù)將JSON格式字符串輸出。