在實際的開發中,我們經常會用C語言作為后端開發語言,并使用JSON作為數據交互格式。在這種情況下,我們需要把JSON數據寫入后端數據庫中,以進一步進行數據處理。下面我們就來看看如何使用C來實現將JSON數據寫入數據庫中吧。
// include頭文件 #include <mysql.h> #include <ctype.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include <json-c/json.h> // 插入數據到MySQL表中 int insert_json_data_to_mysql(char* json_data) { MYSQL* con; int num_fields; MYSQL_FIELD *fields; MYSQL_RES *res; MYSQL_ROW row; json_object *json_obj = json_tokener_parse(json_data); // 從JSON對象中獲取插入MySQL的數據 char *name = json_object_get_string(json_object_object_get(json_obj, "name")); int age = json_object_get_int(json_object_object_get(json_obj, "age")); // 連接MySQL數據庫 con = mysql_init(NULL); if (mysql_real_connect(con, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); return -1; } // 插入數據到MySQL表中 char sql_statement[2048]; sprintf(sql_statement, "INSERT INTO people (name, age) VALUES ('%s', '%d')", name, age); if (mysql_query(con, sql_statement)) { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); return -1; } mysql_close(con); return 0; } int main() { char* json_string = "{\"name\": \"Tom\", \"age\": 18}"; insert_json_data_to_mysql(json_string); return 0; }
上面的代碼演示了如何使用C語言將JSON數據轉換為MySQL數據庫中的記錄。首先使用#include <json-c/json.h>
頭文件包括JSON解析庫,然后使用json_tokener_parse()
解析JSON數據。我們可以使用json_object_object_get()
來獲取JSON對象的內容。
接下來連接到MySQL數據庫。我們使用MySQL C API連接到MySQL數據庫。若連接成功,使用mysql_query()
執行一個SQL語句插入數據到MySQL表中。
最后,我們就可以使用我們自己的JSON數據填充數據,使用insert_json_data_to_mysql()
插入數據到MySQL表中。
下一篇mysql加強