C JSON文件是一種輕量級(jí)的數(shù)據(jù)交換格式,它使用簡(jiǎn)潔易讀的文本格式描述數(shù)據(jù)對(duì)象,可以被各種編程語(yǔ)言輕松解析和生成。
一個(gè)C JSON文件通常包含對(duì)象或數(shù)組。對(duì)象是由鍵值對(duì)組成,每個(gè)鍵值對(duì)之間用逗號(hào)分隔,鍵和值之間用冒號(hào)分隔。例如:
{ "name": "張三", "age": 18, "gender": "男" }
數(shù)組是由一組值組成,每個(gè)值之間用逗號(hào)分隔。例如:
[1, 2, 3, "hello world", true]
C JSON文件可以使用第三方庫(kù)解析和生成,比如 cJSON:
#include#include "cJSON.h" int main() { char *json_str = "{\"name\": \"張三\", \"age\": 18, \"gender\": \"男\(zhòng)"}"; cJSON *root = cJSON_Parse(json_str); if (root == NULL) { printf("Failed to parse JSON string.\n"); return 1; } cJSON *name = cJSON_GetObjectItem(root, "name"); if (name == NULL) { printf("Failed to find name field.\n"); return 1; } cJSON *age = cJSON_GetObjectItem(root, "age"); if (age == NULL) { printf("Failed to find age field.\n"); return 1; } cJSON *gender = cJSON_GetObjectItem(root, "gender"); if (gender == NULL) { printf("Failed to find gender field.\n"); return 1; } printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("Gender: %s\n", gender->valuestring); cJSON_Delete(root); return 0; }
上面的代碼演示了如何使用 cJSON 解析一個(gè)包含對(duì)象的C JSON文件,并獲取其中的字段值。
與解析類似,生成C JSON文件也可以使用 cJSON 庫(kù):
#include#include "cJSON.h" int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "張三"); cJSON_AddNumberToObject(root, "age", 18); cJSON_AddStringToObject(root, "gender", "男"); char *json_str = cJSON_Print(root); printf("%s\n", json_str); cJSON_free(json_str); cJSON_Delete(root); return 0; }
上面的代碼演示了如何使用 cJSON 生成一個(gè)包含對(duì)象的C JSON文件,并將其打印輸出。