C是一種高級(jí)編程語(yǔ)言,廣泛應(yīng)用于操作系統(tǒng)、游戲開(kāi)發(fā)、嵌入式系統(tǒng)等領(lǐng)域。隨著Web應(yīng)用的發(fā)展,C語(yǔ)言也開(kāi)始被用于Web編程。使用C語(yǔ)言讀取json參數(shù)是Web開(kāi)發(fā)中常見(jiàn)的需求之一。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> // 從json文件讀取參數(shù) void read_from_file(const char* filename) { // 打開(kāi)json文件 FILE* fp = fopen(filename, "r"); if (!fp) { printf("Failed to open file: %s\n", filename); return; } // 讀取文件內(nèi)容 char buf[1024]; size_t len = fread(buf, 1, sizeof(buf), fp); fclose(fp); // 解析json數(shù)據(jù) json_error_t error; json_t* root = json_loads(buf, 0, &error); if (!root) { printf("Failed to parse json: %s\n", error.text); return; } // 讀取參數(shù) json_t* name = json_object_get(root, "name"); if (!json_is_string(name)) { printf("Invalid name format\n"); return; } printf("Name: %s\n", json_string_value(name)); json_t* age = json_object_get(root, "age"); if (!json_is_integer(age)) { printf("Invalid age format\n"); return; } printf("Age: %d\n", json_integer_value(age)); json_t* gender = json_object_get(root, "gender"); if (!json_is_boolean(gender)) { printf("Invalid gender format\n"); return; } printf("Gender: %s\n", json_is_true(gender) ? "male" : "female"); json_t* hobbies = json_object_get(root, "hobbies"); if (!json_is_array(hobbies)) { printf("Invalid hobbies format\n"); return; } printf("Hobbies:\n"); for (int i = 0; i< json_array_size(hobbies); i++) { json_t* hobby = json_array_get(hobbies, i); printf("- %s\n", json_string_value(hobby)); } json_decref(root); } int main() { read_from_file("data.json"); return 0; }
上述代碼演示了如何使用jansson庫(kù)從json文件中讀取參數(shù)。首先,我們需要打開(kāi)json文件,讀取文件內(nèi)容,然后解析json數(shù)據(jù)。在解析過(guò)程中,需要對(duì)參數(shù)類型進(jìn)行判斷,以確保數(shù)據(jù)的正確性。最后,將參數(shù)值輸出即可。
上一篇mysql去掉-