淘先锋技术网

首页 1 2 3 4 5 6 7

在进行软件开发过程中,经常需要将JSON文件存放到SQL数据库中。这样可以更加方便地进行数据处理和查询。而在C语言中,我们可以使用以下代码将JSON文件存储到SQL数据库中。

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
#include <jansson.h>
int main(int argc, char **argv){
MYSQL *con = mysql_init(NULL);
if (con == NULL){
fprintf(stderr, "%s\n", mysql_error(con));
exit(1);
}
if (mysql_real_connect(con, "localhost", "user","password",NULL, 0, NULL, 0) == NULL){
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
if (mysql_query(con, "CREATE DATABASE testdb")){
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
if (mysql_query(con, "USE testdb")){
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
if (mysql_query(con, "CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, name CHAR(50), age INT)")){
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
const char *json_string = "{\"name\":\"Tom\", \"age\": 24}";
json_error_t error;
json_t *json_obj = json_loads(json_string, 0, &error);
if(!json_obj){
printf("JSON年龄字段不存在");
return 1;
}
json_t *age_obj = json_object_get(json_obj, "age");
int age = json_integer_value(age_obj);
json_t *name_obj = json_object_get(json_obj, "name");
const char *name = json_string_value(name_obj);
mysql_query(con, "INSERT INTO users (id, name, age) VALUES ('', '%s', '%d')", name, age);
mysql_close(con);
exit(0);
}

以上代码中,我们使用json_loads()函数将JSON字符串转换为JSON对象。接着,我们使用json_object_get()函数获取JSON对象中的属性值,并使用mysql_query()函数将该属性值插入到SQL数据库的users表中。

总结而言,将JSON文件存放到SQL数据库中可大大简化我们在软件开发过程中对于数据处理和查询的操作。而在C语言中,我们可利用json-c库和MySQL C API,来实现将JSON文件存入SQL数据库的功能。