在 C 語言中,我們通常使用 JSON 格式來描述數據。當我們使用 C 語言處理 JSON 數據時,經常需要將 JSON 數組轉換為實體對象。
在 C 語言中,常用的 JSON 庫有 cJSON 和 jsmn 等。下面以 cJSON 庫為例,介紹如何將 JSON 數組轉換為實體對象。
// JSON 數據 { "person": [ { "name": "Jack", "age": 18, "gender": "male" }, { "name": "Tom", "age": 20, "gender": "male" } ] } // C 代碼 cJSON *personArray = cJSON_GetObjectItem(root, "person"); int arraySize = cJSON_GetArraySize(personArray); for (int i = 0; i< arraySize; i++) { cJSON *personObject = cJSON_GetArrayItem(personArray, i); char *name = cJSON_GetObjectItem(personObject, "name")->valuestring; int age = cJSON_GetObjectItem(personObject, "age")->valueint; char *gender = cJSON_GetObjectItem(personObject, "gender")->valuestring; // 使用 name、age、gender 創建實體對象 // ... }
首先,我們通過 cJSON_GetObjectItem 函數獲取 JSON 對象的 person 數組。然后,使用 cJSON_GetArraySize 函數獲取數組的大小。接下來,使用 cJSON_GetArrayItem 函數獲取數組中的每個 JSON 對象,并使用 cJSON_GetObjectItem 函數獲取對象中的屬性值。
最后,使用屬性值創建實體對象。這里省略了創建對象的具體代碼。
可以看到,使用 cJSON 庫將 JSON 數組轉換為實體對象非常方便。需要注意的是,當屬性值類型不是字符串時,需要使用不同的 cJSON_GetObjectItem 函數獲取。
上一篇Vue子父傳遞
下一篇python 說話人識別