C JSON 是一種輕量級的數據交換格式,它可以輕松地在各種編程語言之間進行數據傳輸和共享。它被廣泛應用于 Web 應用程序、移動應用程序、桌面應用程序等各個領域。
C JSON 格式非常簡單,它由屬性名和對應的值組成,并用花括號和方括號將它們括起來。以下是一個簡單的 C JSON 示例:
{ "name": "Tom", "age": 23, "skills": ["C++", "Java", "Python"] }
在這個示例中,我們定義了一個包含三個屬性的 JSON 對象,分別是 name、age 和 skills。其中,name 的值是字符串類型,age 的值是整數類型,skills 的值是字符串數組類型。
使用 C JSON 可以非常方便地進行數據的序列化和反序列化。如果我們需要將一個 C JSON 對象轉換成字符串,可以使用 cJSON_Print 函數,如下所示:
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 23); cJSON *skills = cJSON_CreateArray(); cJSON_AddItemToArray(skills, cJSON_CreateString("C++")); cJSON_AddItemToArray(skills, cJSON_CreateString("Java")); cJSON_AddItemToArray(skills, cJSON_CreateString("Python")); cJSON_AddItemToObject(root, "skills", skills); char *jsonStr = cJSON_Print(root);
上述代碼中,我們首先創建了一個 cJSON 對象 root,然后使用 cJSON_AddStringToObject 和 cJSON_AddNumberToObject 函數向 root 對象中添加屬性 name 和 age。接著,我們創建了一個 cJSON 數組 skills,并使用 cJSON_CreateString 和 cJSON_AddItemToArray 函數向 skills 數組中添加了三個字符串元素。最后,我們使用 cJSON_Print 函數將 root 對象轉換成 JSON 字符串。
反之,如果我們有一個 JSON 字符串,需要將它轉換成 C JSON 對象,可以使用 cJSON_Parse 函數,如下所示:
cJSON *root = cJSON_Parse(jsonStr); const char *name = cJSON_GetObjectItem(root, "name")->valuestring; int age = cJSON_GetObjectItem(root, "age")->valueint; cJSON *skills = cJSON_GetObjectItem(root, "skills"); for (int i = 0; i< cJSON_GetArraySize(skills); i++) { const char *skill = cJSON_GetArrayItem(skills, i)->valuestring; }
在這個示例中,我們首先使用 cJSON_Parse 函數將 JSON 字符串解析成 cJSON 對象 root。然后,我們使用 cJSON_GetObjectItem 函數獲取屬性 name 和 age 的值,并分別轉換成字符串和整數類型。最后,我們使用 cJSON_GetObjectItem 和 cJSON_GetArrayItem 函數遍歷 skills 數組,獲取其中的每個字符串元素。
以上就是 C JSON 格式的簡單介紹以及使用方法,希望對大家有所幫助。