C語言中處理JSON數據格式時,常常需要解析JSON數組。而有些JSON數組中可能嵌套了多個數組或者對象,所以我們需要逐層解析,來獲取我們需要的數據。
使用第三方的C JSON庫可以很容易地處理JSON數據。下面是一個嵌套JSON數組的例子:
{ "Students":[ { "Name":"Bob", "Age":18, "Class":{ "Grade":3, "Number":2 } }, { "Name":"Alice", "Age":19, "Class":{ "Grade":2, "Number":4 } } ] }
我們需要使用C JSON庫中的一些函數進行解析。首先是cJSON_Parse函數,它用于將JSON字符串轉化為cJSON對象。
cJSON *root = cJSON_Parse(json_str);
解析完后我們需要獲取Students數組。首先使用cJSON_GetObjectItem函數獲取root下的Students數組對象:
cJSON *students = cJSON_GetObjectItem(root, "Students");
接下來就是逐個獲取數組對象:
int count = cJSON_GetArraySize(students); for(int i = 0; i< count; i++) { cJSON *student = cJSON_GetArrayItem(students, i); cJSON *name = cJSON_GetObjectItem(student, "Name"); cJSON *age = cJSON_GetObjectItem(student, "Age"); cJSON *class = cJSON_GetObjectItem(student, "Class"); cJSON *grade = cJSON_GetObjectItem(class, "Grade"); cJSON *number = cJSON_GetObjectItem(class, "Number"); }
最后,我們需要使用cJSON_Delete函數釋放cJSON對象內存。
cJSON_Delete(root);
以上便是C語言中解析JSON數組的基本方式,需要根據實際情況進行調整。
上一篇python 讀漢字問題
下一篇python 讀文件跳過