淘先锋技术网

首页 1 2 3 4 5 6 7

C语言是一种被广泛应用的编程语言,它也是处理数据库操作的常用语言之一。在实际开发中,我们经常需要将数据库中的数据转换成JSON格式的数据,以便在Web应用中使用。下面,我们将介绍如何使用C语言将多个SQL查询结果转换成JSON格式,并输出到控制台。

// 引入相关的头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlite3.h>
#include <cJSON.h>
// C 语言连接 SQLite 的方法
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
cJSON* json = (cJSON*)data;
cJSON* row = cJSON_CreateObject(); // 创建一个 cJSON 对象
for(i = 0; i<argc; i++){
cJSON_AddItemToObject(row, azColName[i], cJSON_CreateString(argv[i]));
}
cJSON_AddItemToArray(json, row); // 将创建好的 row 类型的 cJSON 添加到 cJSON 数组中
return 0;
}
int main(int argc, char* argv[]){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char sql[100];
cJSON* json = cJSON_CreateArray(); // 创建一个 cJSON 数组
// 打开指定的数据库
rc = sqlite3_open("test.db", &db);
// 第一个 SQL 查询
sprintf(sql, "SELECT * FROM users;");
sqlite3_exec(db, sql, callback, (void*)json, &zErrMsg);
// 第二个 SQL 查询
sprintf(sql, "SELECT * FROM products;");
sqlite3_exec(db, sql, callback, (void*)json, &zErrMsg);
// 第三个 SQL 查询
sprintf(sql, "SELECT * FROM orders;");
sqlite3_exec(db, sql, callback, (void*)json, &zErrMsg);
// 输出 JSON 格式的数据到控制台
printf("%s", cJSON_Print(json));
sqlite3_close(db);
return 0;
}

在上面的代码中,我们使用了 SQLite 数据库,并使用了 cJSON 库来创建 JSON 格式的数据。我们使用一个数组来存储所有的查询结果,并将所有的行数据按照指定格式添加到数组中。最终,我们可以通过 cJSON_Print 来将整个数组输出到控制台中。