欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

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

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

#include#include#include#includeint main(){
MYSQL *conn; //定義MySQL連接對(duì)象
MYSQL_RES *res; //定義結(jié)果集對(duì)象
MYSQL_ROW row; //定義行對(duì)象
char *server = "localhost"; //數(shù)據(jù)庫(kù)所在服務(wù)器地址
char *user = "root"; //連接數(shù)據(jù)庫(kù)的用戶名
char *password = "123456"; //連接數(shù)據(jù)庫(kù)的密碼
char *database = "test"; //使用的數(shù)據(jù)庫(kù)名
char sql[1024]; //SQL語(yǔ)句
cJSON *json; //定義cJSON對(duì)象
const char *str = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; //JSON格式的字符串
char *name, *gender; //定義字符串變量
int age; //定義整形變量
conn = mysql_init(NULL); //初始化MySQL連接對(duì)象
if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)){
printf("連接數(shù)據(jù)庫(kù)失敗:%s\n", mysql_error(conn));
exit(1); //連接失敗,退出程序
}
json = cJSON_Parse(str); //將JSON格式的字符串解析為cJSON對(duì)象
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語(yǔ)句
if(mysql_query(conn, sql)){
printf("插入數(shù)據(jù)失敗:%s\n", mysql_error(conn));
exit(1); //插入失敗,退出程序
}
mysql_close(conn); //關(guān)閉MySQL連接
return 0;
}

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

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