欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 把json轉成對象數組對象

方一強1年前8瀏覽0評論

C語言是一門常用的編程語言,它在處理數據方面擁有很高的效率。在實際的開發中,我們常常需要將數據以JSON的形式傳遞,并將其轉換為對象數組對象以便于后續的處理。下面我們就來介紹如何在C語言中把JSON轉成對象數組對象。

#include#include#include#include "cJSON.h"
#define ARRAY_SIZE(array) sizeof(array)/sizeof(array[0]) //計算數組大小的宏定義
typedef struct {
char *name; //名字
double score; //得分
} Student;
int main() {
//讀取JSON字符串
char *json_string = "{\"students\":[{\"name\":\"Tom\",\"score\":88.5},{\"name\":\"Alice\",\"score\":92.0},{\"name\":\"Bob\",\"score\":76.5}]}";
//解析JSON字符串成JSON對象
cJSON *root = cJSON_Parse(json_string);
//獲取JSON對象中的數組對象
cJSON *students = cJSON_GetObjectItem(root, "students");
//計算數組大小
int size = cJSON_GetArraySize(students);
//定義存儲對象的數組
Student *arr = (Student *)malloc(sizeof(Student) * size);
for (int i = 0; i< size; i++) {
//獲取JSON對象中的對象
cJSON *student = cJSON_GetArrayItem(students, i);
//獲取對象中的名字和得分
char *name = cJSON_GetObjectItem(student, "name")->valuestring;
double score = cJSON_GetObjectItem(student, "score")->valuedouble;
//把名字和得分存儲到數組中
arr[i].name = (char *)malloc(sizeof(char) * strlen(name));
strcpy(arr[i].name, name);
arr[i].score = score;
}
//打印對象數組對象
for (int i = 0; i< size; i++) {
printf("name:%s, score:%.2f\n", arr[i].name, arr[i].score);
free(arr[i].name);
}
//釋放內存
free(arr);
cJSON_Delete(root);
return 0;
}

以上的C語言代碼實現了把JSON轉成對象數組對象的功能。在代碼中,我們使用了第三方庫cJSON來解析JSON。首先,我們讀取JSON字符串,并將其解析成JSON對象。接著,我們從JSON對象中獲取數組對象,并計算出數組的大小,并定義一個Student結構體數組用來存放轉換后的結果。然后,我們遍歷數組對象,獲取每個對象中的名字和得分,并將其存儲到數組中。最后,我們打印結果,并釋放內存。