在使用C語言,將JSON格式的數據插入到數據庫中時,我們需要先了解如何將JSON格式的數據轉換為SQL語句。下面是一個簡單的JSON數據:
{ "id": 1, "name": "小明", "age": 18 }
我們需要將該JSON數據轉換為SQL語句,插入到數據庫中。轉換后的SQL語句如下:
INSERT INTO Persons (id, name, age) VALUES (1, '小明', 18);
注:Persons為數據庫中的表名。
下面是一段C語言的代碼,演示了如何將JSON數據插入到MySQL數據庫中:
#include#include #include #include int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "123456"; char *database = "test"; conn = mysql_init(NULL); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } char *json_string = "{\"id\": 1, \"name\": \"小明\", \"age\": 18}"; cJSON *json = cJSON_Parse(json_string); if (json == NULL) { const char *error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { fprintf(stderr, "Error before: %s\n", error_ptr); } exit(1); } char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint; int id = cJSON_GetObjectItem(json, "id")->valueint; char sql[1024]; sprintf(sql, "INSERT INTO Persons (id, name, age) VALUES (%d, '%s', %d)", id, name, age); if (mysql_query(conn, sql)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } mysql_close(conn); exit(0); }
注:該代碼基于MySQL數據庫,需要先安裝libmysqlclient-dev庫。
下一篇c json接口開發