在C語言中,使用libcurl庫可以方便地進行網(wǎng)絡(luò)通信。而在使用中可能需要查詢一個存儲在數(shù)據(jù)庫中的Json數(shù)據(jù)。這時就可以使用C語言中的SQL查詢語句進行操作。
下面是一個使用C語言進行SQL查詢Json數(shù)據(jù)的示例代碼:
#include#include #include #include #include #define SERVER "localhost" #define USER "root" #define PASSWORD "123456" #define DATABASE "test" int main() { MYSQL mysql; MYSQL_RES* res = NULL; MYSQL_ROW row; char sql[200] = {0}; char json[1024] = {0}; mysql_init(&mysql); if (!mysql_real_connect(&mysql, SERVER, USER, PASSWORD, DATABASE, 0, NULL, 0)) { printf("Failed to connect to MySQL: Error: %s\n", mysql_error(&mysql)); return -1; } sprintf(sql, "SELECT json_data FROM test WHERE id=2"); if (mysql_query(&mysql, sql)) { printf("Failed to query: Error: %s\n", mysql_error(&mysql)); mysql_close(&mysql); return -1; } res = mysql_store_result(&mysql); if (res) { int num_fields = mysql_num_fields(res); while ((row = mysql_fetch_row(res))) { for (int i = 0; i< num_fields; i++) { if (row[i]) { strcpy(json, row[i]); printf("Json data: %s\n", json); } } } mysql_free_result(res); } else { printf("Failed to get result: Error: %s\n", mysql_error(&mysql)); } mysql_close(&mysql); return 0; }
在這個示例代碼中,通過連接到MySQL數(shù)據(jù)庫,使用SELECT語句查詢id為2的test表中的json_data字段,將結(jié)果存儲在RES對象中,使用mysql_fetch_row函數(shù)從RES對象中讀取每行的數(shù)據(jù),并將其中的json數(shù)據(jù)存儲在字符串json中最后輸出。