色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c json語言讀取數據

錢浩然2年前8瀏覽0評論

C語言是一種被廣泛使用的編程語言,它支持很多數據格式的讀取與處理。其中,JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,具有良好的可讀性與可擴展性。下面介紹在C語言中如何讀取JSON格式的數據。

首先,需要使用第三方庫——cJSON。它是一款輕量級的JSON解析庫,可以快速在C語言中解析JSON格式的數據。下面是一個讀取JSON文件并輸出解析結果的示例代碼:

#include <stdio.h>
#include <cJSON.h>
int main()
{
// 讀取JSON文件
FILE* fp = fopen("data.json", "rb");
if(fp == NULL) 
{
printf("json file not found\n");
return -1;
}
// 獲取文件長度并分配內存
fseek(fp, 0, SEEK_END);
long len = ftell(fp);
fseek(fp, 0, SEEK_SET);
char* json_str = (char*)malloc(len + 1);
fread(json_str, 1, len, fp);
fclose(fp);
// 解析JSON數據
cJSON* root = cJSON_Parse(json_str);
if(root == NULL) 
{
printf("json parse error\n");
return -1;
}
// 輸出解析結果
cJSON* data = cJSON_GetObjectItem(root, "data");
printf("name: %s\n", cJSON_GetObjectItem(data, "name")->valuestring);
printf("age: %d\n", cJSON_GetObjectItem(data, "age")->valueint);
cJSON_Delete(root);
free(json_str);
return 0;
}

上述代碼中,首先通過fopen函數讀取JSON文件,并獲取文件長度,然后根據文件長度動態分配內存,將JSON文件中的數據讀入內存。接著,使用cJSON庫的cJSON_Parse函數解析JSON數據,獲取解析后的JSON對象指針root。

在解析后的JSON對象中,可以使用cJSON_GetObjectItem函數獲取指定的JSON鍵值對。例如,通過cJSON_GetObjectItem函數獲取"data"鍵值對的值data,再使用cJSON_GetObjectItem函數獲取"name"和"age"鍵值對的值,并輸出解析結果。

最后,需要使用cJSON_Delete函數釋放解析對象的內存,并使用free函數釋放讀取JSON文件時動態分配的內存。