欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json 登錄

劉柏宏2年前7瀏覽0評論

在Web開發中經常需要前端向后端傳輸數據,而JSON(JavaScript 對象表示法)作為一種輕量級的數據交換格式,成為了一種常用的數據格式。而在C語言中,利用json-c庫可以方便地解析JSON數據,實現前后端數據交互。下面介紹如何使用json-c庫實現登錄功能。

#include#include#include#define FILE_PATH "user.json"
#define MAX_STRING 100
// 用戶結構體
typedef struct {
char username[MAX_STRING];
char password[MAX_STRING];
} user;
// 讀取JSON文件
json_object* read_json_file(char* filename) {
char buffer[MAX_STRING];
int size;
FILE* fp = fopen(filename, "r");
if (fp == NULL) {
printf("File not found.\n");
return NULL;
}
fseek(fp, 0L, SEEK_END);
size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
fread(buffer, size, 1, fp);
fclose(fp);
return json_tokener_parse(buffer);
}
int main() {
char input_username[MAX_STRING], input_password[MAX_STRING];
printf("Please enter your username: ");
scanf("%s", input_username);
printf("Please enter your password: ");
scanf("%s", input_password);
json_object* users_obj = read_json_file(FILE_PATH);
if (users_obj == NULL) {
return 0;
}
// 循環遍歷用戶列表
int user_count = json_object_array_length(users_obj);
for (int i = 0; i< user_count; i++) {
json_object* user_obj = json_object_array_get_idx(users_obj, i);
user current_user;
json_object_object_foreach(user_obj, key, val) {
if (strcmp(key, "username") == 0) {
strcpy(current_user.username, json_object_get_string(val));
}
if (strcmp(key, "password") == 0) {
strcpy(current_user.password, json_object_get_string(val));
}
}
if (strcmp(input_username, current_user.username) == 0 
&& strcmp(input_password, current_user.password) == 0) {
printf("Login success!\n");
return 0;
}
}
printf("Username or password is incorrect.\n");
return 0;
}

在上述代碼中,我們首先定義了一個用戶結構體,其中包含用戶名和密碼兩個成員變量。然后定義了一個函數read_json_file,用于讀取JSON文件并返回一個json_object對象。

在主函數中,我們首先從用戶輸入中獲取到用戶名和密碼,并調用read_json_file函數讀取指定路徑下的JSON文件。然后循環遍歷用戶列表,利用json_object_object_foreach函數獲取當前遍歷到的用戶的用戶名和密碼,比對用戶輸入與文件中的數據是否匹配,若匹配則輸出登錄成功。

至此,利用json-c庫實現登錄功能的代碼已經完成。但是需要注意的是,由于C語言的編譯執行速度較慢,對于Web后臺場景,建議使用其他更加高效的語言進行開發。