色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c json轉換為數組對象數組

錢諍諍2年前7瀏覽0評論

在C語言中,我們通常使用JSON編碼來傳輸和存儲數據。有時候,我們需要把JSON字符串轉化為C數組對象數組,以方便進行數據處理和操作。以下是一個使用C庫“cJSON”將JSON字符串轉換為數組對象數組的示例。

// 引入頭文件
#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
// JSON字符串
char* jsonString = "{\"employees\": [
{\"firstName\":\"John\", \"lastName\":\"Doe\"},
{\"firstName\":\"Anna\", \"lastName\":\"Smith\"},
{\"firstName\":\"Peter\", \"lastName\":\"Jones\"}
]}";
// 解析JSON字符串
cJSON* json = cJSON_Parse(jsonString);
// 獲取數組對象
cJSON* employees = cJSON_GetObjectItemCaseSensitive(json, "employees");
int numEmployees = cJSON_GetArraySize(employees);
// 創建C數組對象數組
struct employee {
char* firstName;
char* lastName;
} employeesArray[numEmployees];
// 循環遍歷JSON數組對象,填充C數組對象數組
int i=0;
cJSON_ArrayForEach(employeeJSON, employees) {
cJSON* firstNameJSON = cJSON_GetObjectItemCaseSensitive(employeeJSON, "firstName");
cJSON* lastNameJSON = cJSON_GetObjectItemCaseSensitive(employeeJSON, "lastName");
employeesArray[i].firstName = cJSON_GetStringValue(firstNameJSON);
employeesArray[i].lastName = cJSON_GetStringValue(lastNameJSON);
i++;
}
// 打印C數組對象數組
for(int j=0; j<numEmployees; j++) {
printf("Employee %d:\n\tFirst Name: %s\n\tLast Name: %s\n", 
j+1, employeesArray[j].firstName, employeesArray[j].lastName);
}
// 釋放內存
cJSON_Delete(json);
return 0;
}

以上代碼中,我們首先使用cJSON_Parse函數解析輸入的JSON字符串,并使用cJSON_GetObjectItemCaseSensitive函數獲取了“employees”數組對象。接著,我們使用cJSON_GetArraySize函數獲取了數組對象中元素的個數,然后創建了一個C數組對象數組employeesArray,大小為numEmployees。循環遍歷JSON數組對象中的元素,然后使用cJSON_GetObjectItemCaseSensitive函數獲取每個員工元素中的“firstName”和“lastName”,并將它們賦值給C數組對象數組中對應的元素。最后,我們打印出了C數組對象數組中的員工信息,并使用cJSON_Delete函數釋放了JSON對象所占用的內存。

通過使用cJSON庫,我們可以輕松地將JSON字符串轉換為C數組對象數組,以方便進行數據處理和操作。