JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常用于前端和后端數據傳輸。在C語言中,我們可以使用第三方庫cJSON解析JSON數據。
如果想要從JSON中讀取數組,我們需要先了解一下cJSON的基本數據類型。cJSON有7種類型:NULL、False、True、Number、String、Array和Object。其中,Array類型表示JSON中的數組。
下面是一個例子,展示如何從JSON中讀取數組:
// JSON數據 // { // "fruits": ["apple", "banana", "orange"] // } // 使用cJSON讀取JSON數據 cJSON *json = cJSON_Parse(json_str); // json_str是JSON數據字符串 cJSON *fruits = cJSON_GetObjectItem(json, "fruits"); // 從JSON對象中獲取名字為“fruits”的鍵值對 if (fruits != NULL && cJSON_IsArray(fruits)) { // 判斷fruits是否為數組類型 int array_size = cJSON_GetArraySize(fruits); // 獲取數組大小 for (int i = 0; i< array_size; i++) { cJSON *item = cJSON_GetArrayItem(fruits, i); // 獲取數組元素 const char *fruit_name = cJSON_GetStringValue(item); // 獲取元素值(字符串類型) printf("%s\n", fruit_name); // 輸出“apple”,“banana”,“orange” } }
在上面的例子中,我們首先使用cJSON_Parse函數將JSON字符串解析為一個cJSON對象。然后,我們使用cJSON_GetObjectItem函數獲取“fruits”鍵對應的值。接著,我們使用cJSON_IsArray函數判斷這個值是否為數組類型。如果是數組類型,我們可以使用cJSON_GetArraySize函數獲取數組大小。最后,我們可以使用cJSON_GetArrayItem函數逐個獲取數組元素,使用cJSON_GetStringValue函數獲取元素的字符串值。
這就是使用cJSON從JSON中讀取數組的基本操作。如果你需要處理更復雜的JSON數據,請參考cJSON的官方文檔。
上一篇c++ json中文亂碼
下一篇c參數拼成json格式