在實際的開發過程中,經常需要將JSON數據寫入數據庫中。而C語言是一種非常常用的編程語言,因此在本文中將介紹如何使用C語言將JSON數據寫入數據庫。
首先,在C語言中讀取JSON數據時,可以使用第三方庫,比如說cJSON。
#include <stdio.h> #include <stdlib.h> #include <pcre.h> #include "cJSON.h" int main() { char *json_string = "{ \"name\":\"John Smith\",\"age\": 28 }"; cJSON *root = cJSON_Parse(json_string); // 將JSON字符串解析成一個cJSON對象 cJSON *name = cJSON_GetObjectItem(root, "name"); // 從cJSON對象中獲取name值 cJSON *age = cJSON_GetObjectItem(root, "age"); // 從cJSON對象中獲取age值 printf("name: %s, age: %d\n", name->valuestring, age->valueint); cJSON_Delete(root); // 釋放內存 return 0; }
然后,需要將解析得到的數據寫入數據庫中,可以使用MySQL數據庫。
#include <stdio.h> #include <stdlib.h> #include <pcre.h> #include "cJSON.h" #include <mysql/mysql.h> int main() { // 連接MySQL數據庫 MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; conn = mysql_init(NULL); mysql_real_connect(conn, "127.0.0.1", "root", "password", "test", 0, NULL, 0); // 解析JSON數據 char *json_string = "{ \"name\":\"John Smith\",\"age\": 28 }"; cJSON *root = cJSON_Parse(json_string); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); // 將數據寫入數據庫 char sql[100]; sprintf(sql, "INSERT INTO student VALUES('%s', %d)", name->valuestring, age->valueint); mysql_query(conn, sql); // 顯示數據庫中的內容 mysql_query(conn, "SELECT * FROM student"); res = mysql_store_result(conn); while ((row = mysql_fetch_row(res)) != NULL) { printf("%s %s\n", row[0], row[1]); } // 釋放內存 cJSON_Delete(root); mysql_free_result(res); mysql_close(conn); return 0; }
通過以上的代碼,我們可以清楚地了解到如何使用C語言將JSON數據寫入數據庫中。實際使用中,還需要根據具體的需求進行調整和優化。
上一篇vue jqprint