C語言作為一門歷史悠久的語言,一直以來都是許多程序員心目中最穩定、最可靠的語言之一。而隨著web應用的不斷普及,使用json進行數據格式傳輸也愈加流行。幸運的是,C語言自帶了json解析庫,使得C語言程序員可以不依賴第三方庫輕松解析json格式文件。
#include#include #include #include #include "cJSON.h" #define MAX_JSON_LENGTH 1024 int main() { char json_buffer[MAX_JSON_LENGTH]; FILE* fp = fopen("example.json", "rb"); if (fp == NULL) { perror("Unable to open file!"); return EXIT_FAILURE; } size_t read_result = fread(json_buffer, sizeof(char), MAX_JSON_LENGTH, fp); if (read_result == 0) { perror("Unable to read file!"); fclose(fp); return EXIT_FAILURE; } cJSON* json = cJSON_Parse(json_buffer); if (json == NULL) { const char* error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { fprintf(stderr, "Error before: %s\n", error_ptr); } cJSON_Delete(json); fclose(fp); return EXIT_FAILURE; } cJSON* name_object = cJSON_GetObjectItemCaseSensitive(json, "name"); cJSON* age_object = cJSON_GetObjectItemCaseSensitive(json, "age"); if (cJSON_IsString(name_object) && (name_object->valuestring != NULL)) { printf("Name: %s\n", name_object->valuestring); } if (cJSON_IsNumber(age_object)) { printf("Age: %d\n", age_object->valueint); } cJSON_Delete(json); fclose(fp); return EXIT_SUCCESS; }
以上是一個簡單的使用cJSON庫解析并讀取json文件的代碼示例。在使用C語言自帶的json解析庫時,首先需要在代碼中包含"cJSON.h"頭文件,然后使用cJSON_Parse函數將json字符串或文件解析成cJSON對象。我們可以使用cJSON_GetObjectItem等函數獲取cJSON對象中的value值,然后根據value的類型進行操作。
總的來說,C語言自帶的json解析庫讓C語言程序員能夠快速方便地解析json文件和字符串,這無疑是對C語言開發的一大福音。