c 數組json反序列化是指將json格式的字符串轉換成c數組的過程。在處理json數據時,經常會用到數據的讀取和存儲,而c數組是存儲數據的一種方式,因此,通過json反序列化能使我們更方便地對json數據進行操作。
在c語言中,可以使用第三方庫如cjson來實現json反序列化。下面是一個簡單的例子:
#include <stdio.h> #include <cjson/cJSON.h> int main() { char* json_str = "{\"name\":\"John\",\"age\":23,\"scores\":[98,85,77]}"; cJSON* root = cJSON_Parse(json_str); char* name = cJSON_GetObjectItem(root, "name")->valuestring; int age = cJSON_GetObjectItem(root, "age")->valueint; cJSON* scores = cJSON_GetObjectItem(root, "scores"); int len = cJSON_GetArraySize(scores); int score_arr[len]; for(int i = 0; i < len; i++) { score_arr[i] = cJSON_GetArrayItem(scores, i)->valueint; } printf("name: %s\nage: %d\nscores: ", name, age); for(int i = 0; i < len; i++) { printf("%d ", score_arr[i]); } printf("\n"); cJSON_Delete(root); return 0; }
在上面的例子中,我們首先定義了一個json字符串。然后使用cJSON_Parse函數將字符串轉換成json對象。接著,通過cJSON_GetObjectItem函數和json鍵名獲取姓名和年齡,并使用cJSON_GetObjectItem函數和json鍵名獲取成績數組。使用cJSON_GetArraySize函數獲取成績數組長度,然后再使用cJSON_GetArrayItem函數獲取每個成績,并存儲到一個整型數組中。最后,將獲取到的數據打印出來,并使用cJSON_Delete函數釋放json對象的內存。
下一篇vue中sort函數