C語言作為一種廣泛使用的編程語言,擁有著廣泛的應用領域。在現代互聯網時代,隨著各種互聯網應用的普及,C語言的應用也越來越廣泛。本文將介紹C語言如何接收JSON并將其入庫。
#include#include #include #include #include #define DB_HOST "localhost" #define DB_USER "root" #define DB_PASS "password" #define DB_NAME "test" int main(int argc, char *argv[]) { char *json_str = "{\"name\":\"Tom\",\"age\":20,\"score\":{\"math\":90,\"english\":80,\"chinese\":70}}"; cJSON *root; cJSON *name, *age, *score, *math, *english, *chinese; char query_str[1024]; MYSQL mysql; mysql_init(&mysql); if (!mysql_real_connect(&mysql, DB_HOST, DB_USER, DB_PASS, DB_NAME, 0, NULL, CLIENT_MULTI_STATEMENTS)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql)); return 0; } root = cJSON_Parse(json_str); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return 0; } name = cJSON_GetObjectItem(root, "name"); age = cJSON_GetObjectItem(root, "age"); score = cJSON_GetObjectItem(root, "score"); math = cJSON_GetObjectItem(score, "math"); english = cJSON_GetObjectItem(score, "english"); chinese = cJSON_GetObjectItem(score, "chinese"); sprintf(query_str, "INSERT INTO student(name, age, math, english, chinese) VALUES('%s', %d, %d, %d, %d);", name->valuestring, age->valueint, math->valueint, english->valueint, chinese->valueint); if (mysql_query(&mysql, query_str)) { fprintf(stderr, "Failed to insert data into database: Error: %s\n", mysql_error(&mysql)); } cJSON_Delete(root); mysql_close(&mysql); return 0; }
上述程序中,首先我們定義了所需的頭文件,其次我們定義了數據庫的連接參數。我們使用了MySQL,可以通過修改這些參數改變數據庫連接目標。我們第一步是使用了cJSON庫將JSON字符串解析為一個CJSON對象,接著我們遍歷CJSON對象獲取所需的各項數值。最后,我們將數據插入到數據庫中。
上一篇c 接收json 返回
下一篇vue中引用變量