隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,數(shù)據(jù)成為了企業(yè)應(yīng)用開發(fā)中不可或缺的一環(huán)。而數(shù)據(jù)庫則是數(shù)據(jù)存儲的主要方式之一。在C語言的世界中,我們可以通過連接數(shù)據(jù)庫讀取數(shù)據(jù)并將其返回為Json數(shù)據(jù)格式。
#include <stdio.h> #include <mysql/mysql.h> #include <json/json.h> int main() { MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; mysql_init(&mysql); mysql_real_connect(&mysql, "localhost", "root", "password", "database", 0, NULL, 0); mysql_query(&mysql, "SELECT * FROM users"); result = mysql_store_result(&mysql); int num_fields = mysql_num_fields(result); Json::Value root; Json::Value results(Json::arrayValue); while ((row = mysql_fetch_row(result))) { Json::Value users; for(int i = 0; i< num_fields; i++) { users[mysql_fetch_field(result)->name] = row[i]; } results.append(users); } root["users"] = results; printf("%s", root.toStyledString().c_str()); mysql_free_result(result); mysql_close(&mysql); return 0; }
以上代碼為C語言從數(shù)據(jù)庫讀取數(shù)據(jù)并返回Json數(shù)據(jù)格式的示例。通過調(diào)用MySql API連接數(shù)據(jù)庫并執(zhí)行SQL語句,獲取返回的結(jié)果集。接下來,我們使用Jsoncpp庫的API構(gòu)建一個Json對象,將查詢結(jié)果放入其中,最后通過toStyledString()方法將Json轉(zhuǎn)換成字符串格式,完成數(shù)據(jù)返回的過程。