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

c json文件讀寫

林子帆1年前9瀏覽0評論

JSON(JavaScript Object Notation,簡稱 JSON)是一種輕量級的數據交換格式,具有良好的可讀性和易于解析的特點。在 C 語言中,我們可以使用 cJSON 庫進行 JSON 文件的讀寫。

#include <stdio.h>
#include "cJSON.h"
int main(void) {
// 創建 JSON 對象
cJSON *root = cJSON_CreateObject();
// 往對象中添加屬性
cJSON_AddNumberToObject(root, "id", 1);
cJSON_AddStringToObject(root, "name", "Tom");
cJSON *address = cJSON_AddObjectToObject(root, "address");
cJSON_AddStringToObject(address, "street", "Main St");
cJSON_AddStringToObject(address, "city", "New York");
// 將 JSON 對象轉化為字符串
char *json_str = cJSON_Print(root);
// 輸出 JSON 字符串
printf("%s\n", json_str);
// 從字符串中解析 JSON 對象
cJSON *new_obj = cJSON_Parse(json_str);
// 從對象中讀取屬性
const cJSON *id = cJSON_GetObjectItemCaseSensitive(new_obj, "id");
printf("id: %d\n", id->valueint);
const cJSON *name = cJSON_GetObjectItemCaseSensitive(new_obj, "name");
printf("name: %s\n", name->valuestring);
const cJSON *address_obj = cJSON_GetObjectItemCaseSensitive(new_obj, "address");
const cJSON *street = cJSON_GetObjectItemCaseSensitive(address_obj, "street");
printf("street: %s\n", street->valuestring);
const cJSON *city = cJSON_GetObjectItemCaseSensitive(address_obj, "city");
printf("city: %s\n", city->valuestring);
// 釋放內存
cJSON_Delete(root);
cJSON_Delete(new_obj);
free(json_str);
return 0;
}

在上面的代碼中,我們首先創建了一個 JSON 對象,并使用cJSON_AddXXXToObject()方法往對象中添加屬性。然后,我們將 JSON 對象轉化為字符串,并使用cJSON_Parse()方法從字符串中解析出一個新的 JSON 對象。這個新的對象可以使用cJSON_GetObjectItemCaseSensitive()方法來獲取其中的屬性。

需要注意的是,在使用 cJSON 庫時需要手動釋放內存。我們使用cJSON_Delete()方法來釋放 JSON 對象的內存,使用free()方法來釋放 JSON 字符串的內存。