C是一種高級編程語言,它被廣泛應用于各種領域。在Web開發中,C語言常被用于拆分JSON數據并將其插入數據庫中。
首先,我們需要通過JSON解析器來解析JSON字符串。以下是一個使用CJSON庫解析JSON的例子:
#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
const char* json = "{\"name\":\"張三\",\"age\":18}";
cJSON* root = cJSON_Parse(json);
if (root == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* name = cJSON_GetObjectItem(root, "name");
cJSON* age = cJSON_GetObjectItem(root, "age");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
cJSON_Delete(root);
return 0;
}
在上面的代碼中,我們通過調用
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cjson/cJSON.h>
#include <sqlite3.h>
int main() {
const char* json = "{\"name\":\"張三\",\"age\":18}";
char* sql = NULL;
int rc;
cJSON* root = cJSON_Parse(json);
if (root == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* name = cJSON_GetObjectItem(root, "name");
cJSON* age = cJSON_GetObjectItem(root, "age");
sqlite3* db;
rc = sqlite3_open("mydatabase.db", &db);
if (rc != SQLITE_OK) {
printf("Could not open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
sql = sqlite3_mprintf("INSERT INTO mytable (name, age) VALUES ('%q', %d)", name->valuestring, age->valueint);
rc = sqlite3_exec(db, sql, NULL, NULL, NULL);
if (rc != SQLITE_OK) {
printf("Error inserting data: %s\n", sqlite3_errmsg(db));
} else {
printf("Data inserted successfully.\n");
}
sqlite3_free(sql);
sqlite3_close(db);
cJSON_Delete(root);
return 0;
}
在上面的代碼中,我們使用SQLite3來插入數據。首先,我們通過調用
使用C語言拆分JSON并將其插入數據庫中非常簡單,只需使用JSON解析器和數據庫API即可。這使得C語言成為一種強大的Web開發語言。