C 數據庫數據類型與 JSON 數據類型是不同的。當我們需要將 C 數據庫的數據轉化為 JSON 數據格式時,需要通過代碼實現這個過程。下面我們來介紹如何實現。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql/mysql.h> #include <jansson.h> #define MAX_QUERY_LEN 1024 int main() { MYSQL mysql; MYSQL_RES* res_set; MYSQL_ROW row; char query[MAX_QUERY_LEN]; int i; int num_fields; char* json_str; json_t* json_obj; json_t* json_array; mysql_init(&mysql); if (!mysql_real_connect(&mysql, "localhost", "root", "123456", "test", 0, NULL, 0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql)); exit(1); } snprintf(query, MAX_QUERY_LEN, "select * from user"); mysql_query(&mysql, query); res_set = mysql_store_result(&mysql); num_fields = mysql_num_fields(res_set); json_array = json_array(); while ((row = mysql_fetch_row(res_set)) != NULL) { json_obj = json_object(); for (i = 0; i < num_fields; i++) { json_object_set_new(json_obj, mysql_field_name(res_set, i), json_string(row[i])); } json_array_append_new(json_array, json_obj); } json_str = json_dumps(json_array, JSON_INDENT(4)); printf("%s\n", json_str); mysql_free_result(res_set); mysql_close(&mysql); exit(0); }
以上就是將 C 數據庫數據轉化為 JSON 數據格式的代碼實現。主要過程是通過 MYSQL API 獲取 C 數據庫數據,并將其轉化為 jansson 數據類型,最后將 jansson 數據類型轉換為 JSON 格式字符串。這里我們使用了 jansson 庫,其提供了方便的數據類型和 API,使用起來非常方便。