在web開發(fā)中,使用json格式傳遞數(shù)據(jù)非常常見。在后端,將接收到的json數(shù)據(jù)寫入數(shù)據(jù)庫是一個(gè)重要的任務(wù)。在 C 語言中,可以使用 cJSON 庫來解析 json 數(shù)據(jù),使用 MySQL 庫來連接和寫入數(shù)據(jù)庫。下面是一個(gè)將 json 數(shù)據(jù)寫入 MySQL 數(shù)據(jù)庫的示例代碼。
#include#include #include //mysql 庫頭文件 #include "cJSON.h" //cJSON 庫頭文件 int main() { MYSQL *con = mysql_init(NULL); if (con == NULL) { fprintf(stderr, "%s\n", mysql_error(con)); exit(1); } if (mysql_real_connect(con, "localhost", "yourusername", "yourpassword", NULL, 0, NULL, 0) == NULL) //連接 MySQL 數(shù)據(jù)庫 { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); } if (mysql_query(con, "CREATE DATABASE IF NOT EXISTS testdb")) //創(chuàng)建數(shù)據(jù)庫 { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); } if (mysql_query(con, "USE testdb")) //選擇數(shù)據(jù)庫 { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); } if (mysql_query(con, "CREATE TABLE IF NOT EXISTS testtable(id INT PRIMARY KEY AUTO_INCREMENT, name TEXT, age INT)")) //創(chuàng)建表 { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); } //json 示例數(shù)據(jù) char *json_data = "{ \"name\": \"John\", \"age\": 30 }"; cJSON *root = cJSON_Parse(json_data); //解析 json 數(shù)據(jù) cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); //將 json 數(shù)據(jù)寫入 MySQL 數(shù)據(jù)庫 char query[128]; sprintf(query, "INSERT INTO testtable(name, age) VALUES('%s', %d)", name->valuestring, age->valueint); if (mysql_query(con, query)) { fprintf(stderr, "%s\n", mysql_error(con)); mysql_close(con); exit(1); } mysql_close(con); return 0; }
在上面的示例代碼中,第一步是連接 MySQL 數(shù)據(jù)庫,需要傳入數(shù)據(jù)庫服務(wù)器地址、用戶名和密碼。之后,創(chuàng)建數(shù)據(jù)庫、選擇數(shù)據(jù)庫、創(chuàng)建表格。接著,通過 cJSON 庫解析 json 數(shù)據(jù),獲取到 name 和 age。然后,將數(shù)據(jù)寫入表格中。這個(gè)過程非常簡(jiǎn)單,但對(duì)于傳遞和存儲(chǔ) json 數(shù)據(jù)是非常有用的。同時(shí),可以根據(jù)具體需求對(duì)代碼進(jìn)行調(diào)整和優(yōu)化。
上一篇python 的包的位置
下一篇python 牛頓法插值