在C語言中,JSON格式數據通常使用一組中括號來表示。在JSON格式中,使用中括號表示的數據類型為數組,數組可以包含多個數據類型,例如字符串、數字、對象等。下面我們就來看一下C語言中JSON格式數據數組的輸入方法。
// 示例1: C語言中JSON格式數據數組的輸入方法 #include#include #include #include "cjson/cJSON.h" int main() { char* json_str = "[1, 2, 3, \"hello\", {\"name\":\"world\"}]"; cJSON *json = cJSON_Parse(json_str); if (!json) { printf("json parse failed: %s\n", cJSON_GetErrorPtr()); return -1; } cJSON *item = cJSON_GetArrayItem(json, 0); printf("%d\n", item->valueint); item = cJSON_GetArrayItem(json, 1); printf("%d\n", item->valueint); item = cJSON_GetArrayItem(json, 2); printf("%d\n", item->valueint); item = cJSON_GetArrayItem(json, 3); printf("%s\n", item->valuestring); item = cJSON_GetArrayItem(json, 4); cJSON* name = cJSON_GetObjectItem(item, "name"); printf("%s\n", name->valuestring); cJSON_Delete(json); return 0; } // 示例1輸出結果: // 1 // 2 // 3 // hello // world
在上面的示例中,我們通過JSON字符串"[1, 2, 3, \"hello\", {\"name\":\"world\"}]"來表示一個JSON數據數組,它包含了5個元素:數字1、數字2、數字3、字符串"hello"以及一個名為"name"的對象,該對象包含一個名為"name"的字符串元素,它的值為"world"。
當我們想要在C語言中解析這個JSON數據數組時,我們需要將JSON字符串解析成一個cJSON對象,然后通過cJSON_GetArrayItem函數來獲取數組中的元素,從而獲取到該元素的值。cJSON_GetArrayItem函數需要傳入兩個參數,一個是cJSON對象,另一個是元素的下標。在示例中,我們使用cJSON_GetArrayItem函數獲取到數組中所有元素的值,并將這些值輸出到屏幕上。
// 示例2: C語言中通過JSON格式輸入數組 #include#include #include #include "cjson/cJSON.h" int main() { cJSON *root = cJSON_CreateArray(); cJSON* item = cJSON_CreateNumber(1); cJSON_AddItemToArray(root, item); item = cJSON_CreateNumber(2); cJSON_AddItemToArray(root, item); item = cJSON_CreateNumber(3); cJSON_AddItemToArray(root, item); item = cJSON_CreateString("hello"); cJSON_AddItemToArray(root, item); cJSON* obj = cJSON_CreateObject(); cJSON_AddItemToObject(obj, "name", cJSON_CreateString("world")); cJSON_AddItemToArray(root, obj); char* json_str = cJSON_PrintUnformatted(root); printf("%s\n", json_str); free(json_str); cJSON_Delete(root); return 0; } // 示例2輸出結果: // [1,2,3,"hello",{"name":"world"}]
與示例1中的代碼功能相反,上面的示例展示了如何通過JSON格式輸入一個數組。首先,我們調用cJSON_CreateArray函數創建一個cJSON對象,并使用cJSON_CreateNumber和cJSON_CreateString等函數來創建各種不同的元素,并將這些元素通過cJSON_AddItemToArray函數添加到數組中。最后,我們使用cJSON_PrintUnformatted函數將cJSON對象轉換成一個JSON字符串。
總之,C語言中的JSON格式數據使用一組中括號來表示。使用cJSON_GetArrayItem函數可以方便地獲取到數組中的元素,而使用cJSON_CreateArray和其他cJSON_Create函數則可以方便地創建各種JSON數據類型。