使用c 讀取json是非常常見的需求,特別是在后端開發領域中。在c 中讀取json,通常使用第三方庫,比如cJSON。接下來,我們就來看一下如何使用cJSON 來讀取json。
#include#include #include "cJSON.h" char *read_file(const char *filename) { FILE *file; char *content; long size; file = fopen(filename, "rb"); if (file == NULL) { return NULL; } fseek(file, 0, SEEK_END); size = ftell(file); rewind(file); content = (char *) malloc(size + 1); if (content == NULL) { fclose(file); return NULL; } fread(content, 1, size, file); fclose(file); content[size] = '\0'; return content; } int main() { char *content; cJSON *root; cJSON *item; content = read_file("example.json"); if (content == NULL) { printf("Error: failed to read file.\n"); return -1; } root = cJSON_Parse(content); if (root == NULL) { printf("Error: failed to parse json string.\n"); free(content); return -1; } item = cJSON_GetObjectItem(root, "name"); if (item == NULL) { printf("Error: failed to get item.\n"); cJSON_Delete(root); free(content); return -1; } printf("Name: %s\n", item->valuestring); cJSON_Delete(root); free(content); return 0; }
以上代碼中,我們首先定義了一個讀取文件的函數read_file,然后在main函數中,讀取example.json文件的內容,使用cJSON_Parse將json字符串轉換為cJSON對象,然后使用cJSON_GetObjectItem獲取"name"字段,并輸出其值。
綜上,使用cJSON 讀取json是非常簡單的。我們只需要使用cJSON_Parse將json字符串轉換為cJSON對象,然后便可使用cJSON提供的函數獲取json中的各項數據。