色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 將json數(shù)據(jù)存入數(shù)據(jù)庫

劉柏宏2年前9瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,隨著移動互聯(lián)網(wǎng)的普及,越來越多的應用程序采用JSON格式的數(shù)據(jù)進行數(shù)據(jù)交互。而C語言是一門強大的編程語言,很多嵌入式系統(tǒng)和操作系統(tǒng)都使用C語言編寫。那么,在C語言中,如何將JSON數(shù)據(jù)存入數(shù)據(jù)庫呢?

#include#include#include#includeint main(){
MYSQL *conn; //定義MySQL連接對象
MYSQL_RES *res; //定義結果集對象
MYSQL_ROW row; //定義行對象
char *server = "localhost"; //數(shù)據(jù)庫所在服務器地址
char *user = "root"; //連接數(shù)據(jù)庫的用戶名
char *password = "123456"; //連接數(shù)據(jù)庫的密碼
char *database = "test"; //使用的數(shù)據(jù)庫名
char sql[1024]; //SQL語句
cJSON *json; //定義cJSON對象
const char *str = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; //JSON格式的字符串
char *name, *gender; //定義字符串變量
int age; //定義整形變量
conn = mysql_init(NULL); //初始化MySQL連接對象
if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)){
printf("連接數(shù)據(jù)庫失敗:%s\n", mysql_error(conn));
exit(1); //連接失敗,退出程序
}
json = cJSON_Parse(str); //將JSON格式的字符串解析為cJSON對象
name = cJSON_GetObjectItem(json, "name")->valuestring; //獲取name屬性值
age = cJSON_GetObjectItem(json, "age")->valueint; //獲取age屬性值
gender = cJSON_GetObjectItem(json, "gender")->valuestring; //獲取gender屬性值
sprintf(sql, "INSERT INTO student(name, age, gender) VALUES('%s', %d, '%s')", name, age, gender); //拼接SQL語句
if(mysql_query(conn, sql)){
printf("插入數(shù)據(jù)失敗:%s\n", mysql_error(conn));
exit(1); //插入失敗,退出程序
}
mysql_close(conn); //關閉MySQL連接
return 0;
}

上面的代碼演示了如何利用cJSON庫來解析JSON格式的字符串,并將解析出來的內(nèi)容存入數(shù)據(jù)庫。首先,需要初始化MySQL連接對象,使用mysql_real_connect()函數(shù)連接數(shù)據(jù)庫。然后,利用cJSON_Parse()函數(shù)將JSON格式的字符串解析為cJSON對象,再使用cJSON_GetObjectItem()函數(shù)獲取JSON中的各個屬性值。最后,使用sprintf()函數(shù)拼接SQL語句,并使用mysql_query()函數(shù)執(zhí)行SQL語句。

總之,在C語言中操作JSON和數(shù)據(jù)庫需要依賴相應的庫,其中cJSON和MySQL是兩個比較常用的庫。