在使用C語言生成JSON數據格式的過程中,常常遇到需要將數據按照分頁方式顯示的情況。本文將介紹如何使用C語言生成JSON分頁。
//定義JSON結構體 typedef struct { int page; int page_size; int total; int total_page; char **data; //存放數據數組 } Json; //定義生成JSON分頁函數 Json *createJsonPage(int page, int page_size, char **data, int total) { Json *json = (Json*)malloc(sizeof(Json)); int total_page = (total / page_size) + (total % page_size == 0 ? 0 : 1); json->page = page; json->page_size = page_size; json->total = total; json->total_page = total_page; json->data = (char**)malloc(sizeof(char*) * page_size); int i = (page - 1) * page_size; int j = 0; while (j< page_size && i< total) { json->data[j] = data[i]; j++; i++; } return json; } //使用示例 int main() { char *data[] = {"test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8", "test9", "test10", "test11", "test12", "test13", "test14", "test15"}; Json *json = createJsonPage(3, 5, data, 15); printf("[%d-%d/%d]", (json->page - 1) * json->page_size + 1, json->page * json->page_size, json->total); printf("第%d頁,總共%d頁\n", json->page, json->total_page); for (int i = 0; i< json->page_size; i++) { if (json->data[i] != NULL) { printf("%s\n", json->data[i]); } } free(json); return 0; }
上述示例代碼中,我們通過定義一個JSON結構體,以及一個生成JSON分頁的函數,實現了按照分頁方式顯示數據的功能。值得注意的是,在生成JSON分頁時,我們需要提供頁面大小、當前頁碼、總數據數量以及數據數組等信息,計算得出總頁數,并根據當前頁碼和頁面大小,取出需要顯示的數據。通過該方法,我們可以方便地使用C語言生成JSON分頁數據。