在Web開發(fā)中,經(jīng)常需要從數(shù)據(jù)庫中獲取數(shù)據(jù)并以JSON格式返回,這時可以使用C語言來編寫查詢語句。
#include <stdio.h> #include <stdlib.h> #include <mysql.h> #include <json-c/json.h> int main() { MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; MYSQL_FIELD *field; int num_fields, i; mysql_init(&mysql); mysql_real_connect(&mysql, "localhost", "username", "password", "database", 0, NULL, 0); mysql_query(&mysql, "SELECT * FROM table"); result = mysql_store_result(&mysql); num_fields = mysql_num_fields(result); while((row = mysql_fetch_row(result))) { json_object *json = json_object_new_object(); for(i = 0; i< num_fields; i++) { field = mysql_fetch_field_direct(result, i); json_object_object_add(json, field->name, json_object_new_string(row[i] ? row[i] : "")); } printf("%s\n", json_object_to_json_string(json)); json_object_put(json); } mysql_free_result(result); mysql_close(&mysql); return 0; }
以上代碼使用MySQL C API連接到數(shù)據(jù)庫并執(zhí)行查詢操作,將查詢結(jié)果以JSON格式輸出。
使用json-c庫可以方便地將數(shù)據(jù)轉(zhuǎn)換為JSON格式。在循環(huán)中,首先創(chuàng)建一個json_object對象,接著遍歷每一個字段,并將字段名和字段值添加到j(luò)son_object中。最后使用json_object_to_json_string函數(shù)將json_object轉(zhuǎn)換為JSON字符串并打印輸出。
C語言查詢數(shù)據(jù)庫返回JSON,非常便捷,值得開發(fā)者們在自己的項目中嘗試。