C JSON是一種輕量級的數(shù)據(jù)交換格式,常用于互聯(lián)網(wǎng)應(yīng)用程序的數(shù)據(jù)傳輸和存儲。與其他格式相比,C JSON格式文件具有更簡單的結(jié)構(gòu)和更高的效率,因此受到廣泛使用。
C JSON文件格式采用鍵值對的方式表示數(shù)據(jù),每個鍵值對之間使用逗號隔開。其中鍵使用字符串表示,值可以是數(shù)字、字符串、數(shù)組、對象等。
以下是一個C JSON格式文件的示例:
{ "name": "小明", "age": 18, "gender": "男", "hobbies": ["游泳", "旅游", "閱讀"], "score": { "語文": 90, "數(shù)學(xué)": 80, "英語": 85 } }
在讀取C JSON文件時,常用的方式是使用第三方庫,例如CJSON。以下是使用CJSON庫讀取上述示例文件的代碼:
#include <stdio.h> #include <cJSON.h> int main() { char *json_string = "{\n \"name\": \"小明\",\n \"age\": 18,\n \"gender\": \"男\(zhòng)",\n \"hobbies\": [\"游泳\", \"旅游\", \"閱讀\"],\n \"score\": {\n \"語文\": 90,\n \"數(shù)學(xué)\": 80,\n \"英語\": 85\n }\n}"; cJSON *root = cJSON_Parse(json_string); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *gender = cJSON_GetObjectItem(root, "gender"); cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); cJSON *score = cJSON_GetObjectItem(root, "score"); printf("姓名:%s\n", name->valuestring); printf("年齡:%d\n", age->valueint); printf("性別:%s\n", gender->valuestring); printf("愛好:\n"); cJSON *hobby = NULL; cJSON_ArrayForEach(hobby, hobbies) { printf(" %s\n", hobby->valuestring); } printf("成績:\n"); cJSON *subject = NULL; cJSON_ArrayForEach(subject, score) { printf(" %s:%d分\n", subject->string, subject->valueint); } cJSON_Delete(root); return 0; }
以上代碼可以讀取出示例文件中的各個數(shù)據(jù)項,并輸出到控制臺中。
總的來說,C JSON格式文件具有簡單明了、高效快捷的特點。使用第三方庫讀取C JSON文件也是相對簡單的,只需要掌握庫的使用方法即可。