在C語言中,我們可以使用數據庫來存儲和管理大量的數據。在很多應用中,我們需要將從數據庫獲取到的數據以JSON格式進行返回。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易于閱讀和編寫。下面介紹如何將C數據轉換為JSON格式。
#include <stdio.h> #include <mysql.h> // 使用MySQL #include <cjson/cJSON.h> // 使用cJSON庫 int main() { MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; MYSQL_FIELD *field; int field_count; mysql_init(&mysql); mysql_real_connect(&mysql, "localhost", "root", "password", "database", 0, NULL, 0); mysql_query(&mysql, "SELECT * FROM table"); result = mysql_store_result(&mysql); field_count = mysql_num_fields(result); // 獲取列數 cJSON *json_root = cJSON_CreateArray(); cJSON *json_item = NULL; while ((row = mysql_fetch_row(result)) != NULL) { json_item = cJSON_CreateObject(); for (int i=0; i<field_count; i++) { field = mysql_fetch_field_direct(result, i); // 獲取列字段 cJSON_AddStringToObject(json_item, field->name, row[i]); // 添加字段和值 } cJSON_AddItemToArray(json_root, json_item); } char *str = cJSON_Print(json_root); // 將JSON轉換為字符串 printf("%s", str); mysql_free_result(result); mysql_close(&mysql); return 0; }
上面的代碼中,我們使用了MySQL和cJSON庫。首先連接數據庫,并執行查詢語句。然后遍歷結果集中的每一行,并將每一列的值添加到一個JSON對象中。最后將JSON對象轉換為字符串并打印出來。