在處理JSON數(shù)據(jù)時(shí),我們通常需要將JSON文件的內(nèi)容寫入到數(shù)據(jù)庫(kù)中。在C語(yǔ)言中,我們可以使用libjson庫(kù)來(lái)處理JSON數(shù)據(jù)并將結(jié)果存儲(chǔ)到數(shù)據(jù)庫(kù)中。
#include <stdio.h> #include <mysql.h> #include <json/json.h> int main() { MYSQL mysql; MYSQL_ROW row; MYSQL_RES *result; mysql_init(&mysql); mysql_real_connect(&mysql,"localhost","root","password","test",0,NULL,0); FILE *fp=fopen("data.json","r"); char buf[1024]={0}; fread(buf,1,1023,fp); fclose(fp); json_object *jobj=json_tokener_parse(buf); json_object *id, *name, *age; json_object_object_get_ex(jobj,"id",&id); json_object_object_get_ex(jobj,"name",&name); json_object_object_get_ex(jobj,"age",&age); char q[1024]={0}; sprintf(q,"INSERT INTO users VALUES(%d,'%s',%d)",json_object_get_int(id),json_object_get_string(name),json_object_get_int(age)); mysql_query(&mysql,q); mysql_query(&mysql,"SELECT * FROM users"); result=mysql_store_result(&mysql); while((row=mysql_fetch_row(result))) { printf("%s %s %s\n",row[0],row[1],row[2]); } }
在上面的代碼中,我們首先連接到MySQL數(shù)據(jù)庫(kù)并打開一個(gè)JSON文件。然后,我們使用libjson庫(kù)從JSON文件中解析數(shù)據(jù)。我們從JSON對(duì)象中提取出id,name和age字段,并使用這些字段創(chuàng)建一個(gè)SQL查詢。最后,我們將查詢提交到數(shù)據(jù)庫(kù)中以將JSON數(shù)據(jù)寫入數(shù)據(jù)庫(kù)。
運(yùn)行代碼后,MySQL數(shù)據(jù)庫(kù)將包含以下行:
+----+-------+------+ | id | name | age | +----+-------+------+ | 1 | Alice | 23 | +----+-------+------+
這就完成了將JSON文件寫入數(shù)據(jù)庫(kù)的過(guò)程。