C語言中處理JSON數據格式需要使用第三方庫,由于C語言本身沒有內置的JSON庫,需要使用C庫中的JSON庫進行處理。
而將數據庫數據轉成JSON格式需要使用以下步驟:
1. 首先連接到數據庫。
MYSQL* conn;
conn = mysql_init(NULL); // 初始化MySQL連接
mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0); // 連接到數據庫
2. 獲取查詢結果。
MYSQL_RES* res;
MYSQL_ROW row;
MYSQL_FIELD* field;
char query[1024];
sprintf(query, "SELECT * FROM table_name");
mysql_query(conn, query); // 發送查詢SQL語句到MySQL服務器
res = mysql_store_result(conn); // 獲取查詢結果
3. 獲取查詢結果的字段數量和字段名稱。
int num_fields = mysql_num_fields(res); // 獲取查詢結果的字段數量
field = mysql_fetch_fields(res); // 獲取查詢結果所有字段名
4. 遍歷查詢結果并將數據轉化為JSON格式。
json_t* root = json_array();
while ((row = mysql_fetch_row(res))) {
json_t* tmp = json_object();
for (int i = 0; i< num_fields; i++) {
json_object_set_new(tmp, field[i].name, json_string(row[i])); // 添加JSON的鍵值對
}
json_array_append_new(root, tmp); // 將整個JSON對象添加到JSON數組中
}
5. 將JSON數據轉化為字符串。
char* json_str = json_dumps(root, JSON_INDENT(4)); // 將JSON數據格式化成縮進格式
printf("%s", json_str);
6. 釋放資源。
mysql_free_result(res); // 釋放查詢結果
mysql_close(conn); // 關閉MySQL連接
json_decref(root); // 釋放JSON對象內存
free(json_str); // 釋放JSON字符串內存
上一篇python 用游戲打金
下一篇nodejs和vue交互