CJSON是一個輕量級的C庫,用于按照JavaScript Object Notation(JSON)標準解析和生成JSON數據格式,可以在不同的平臺上使用。在CJSON中,數據類型是CJSON提供的基本類型,包括NULL、BOOL、NUMBER、STRING和ARRAY/OBJECT。下面,我們將演示如何在CJSON中讀取數據類型。
#include <stdio.h> #include <cJSON.h> int main() { char *json_string = "{\"name\":\"小明\",\"gender\":true,\"age\":25,\"score\":[98,95,100]}"; cJSON *root = cJSON_Parse(json_string); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *gender = cJSON_GetObjectItem(root, "gender"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *score = cJSON_GetObjectItem(root, "score"); printf("name: %s\n", name->valuestring); printf("gender: %s\n", gender->valueint ? "男" : "女"); printf("age: %d\n", age->valueint); //遍歷score數組 printf("score: "); cJSON *entry = NULL; cJSON_ArrayForEach(entry, score) { printf("%d ", entry->valueint); } cJSON_Delete(root); return 0; }
上述代碼解析了一個包含“name”、“gender”、“age”和“score”四個屬性的JSON字符串,并使用CJSON獲取了各個屬性的值。在該代碼中,我們使用cJSON_Parse()函數解析JSON字符串,并使用cJSON_GetObjectItem()函數從JSON對象中獲取相應屬性的值。在獲取屬性值之后,我們可以使用相應的cJSON成員進行數據類型的判斷和轉換,比如在本示例中,我們使用了gender->valueint ? "男" : "女"來判斷gender屬性的值,并使用entry->valueint來獲取score數組中元素的值。
CJSON是一個非常靈活的JSON庫,可以輕松地在C語言程序中解析和生成JSON數據格式。想要了解更多關于CJSON的信息,建議您去CJSON的官方網站查看其文檔。