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

c json 解析后排序

張吉惟2年前10瀏覽0評論

C語言中有很多解析json的庫,其中比較常用的是 cJSON。使用 cJSON 解析 json 后,我們可以將其轉化為 C 語言中的結構體。

cJSON *root = cJSON_Parse(jsonStr);
if (!root) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return -1;
}
// 通過 cJSON_GetObjectItem 獲取 json 中的字段值
cJSON *array = cJSON_GetObjectItem(root, "array");

如果需要對 json 中的某個字段進行排序,可以使用 qsort 函數(shù)對其進行排序。以數(shù)組為例:

typedef struct {
int id;
int score;
} Student;
// 比較函數(shù)
int cmp(const void *a, const void *b) {
return (*(Student *)b).score - (*(Student *)a).score;
}
cJSON *array = cJSON_GetObjectItem(root, "array");
int arraySize = cJSON_GetArraySize(array);
Student *students = (Student *)malloc(sizeof(Student) * arraySize);
for (int i = 0; i< arraySize; i++) {
cJSON *item = cJSON_GetArrayItem(array, i);
students[i].id = cJSON_GetObjectItem(item, "id")->valueint;
students[i].score = cJSON_GetObjectItem(item, "score")->valueint;
}
qsort(students, arraySize, sizeof(Student), cmp);

上面的代碼會將 json 中的 "array" 數(shù)組按照 "score" 字段進行從大到小的排序。排序后,可以按照需求進行后續(xù)的操作,比如輸出排序后的結果。