在C語言的Web開發(fā)中,返回JSON格式的數(shù)據(jù)是非常常見的需求。在C語言中,我們可以使用WebAPI來實(shí)現(xiàn)返回JSON數(shù)據(jù)的功能。下面將介紹如何使用C語言的WebAPI來返回JSON格式的數(shù)據(jù)。
#include <stdio.h> #include <stdlib.h> #include <string.h> /* 引入 cJSON 庫 */ #include <cJSON.h> /* 定義請求處理函數(shù) */ int request_handler(char *req, char *res, int len) { /* 創(chuàng)建 cJSON 對象 */ cJSON *json = cJSON_CreateObject(); /* 設(shè)置 JSON 屬性 */ cJSON_AddStringToObject(json, "name", "Jack"); cJSON_AddNumberToObject(json, "age", 20); cJSON_AddStringToObject(json, "gender", "male"); /* 生成 JSON 字符串 */ char *json_str = cJSON_Print(json); /* 將 JSON 字符串拷貝到返回結(jié)果中 */ strncpy(res, json_str, len); /* 釋放 cJSON 對象及其生成的字符串 */ cJSON_Delete(json); free(json_str); /* 返回成功 */ return 0; }
以上代碼演示了一個(gè)簡單的請求處理函數(shù),它將一些預(yù)設(shè)的屬性以 JSON 格式的字符串返回給請求方。下面是該函數(shù)的調(diào)用方式:
char req[] = "GET / HTTP/1.1\r\nHost: localhost:8080\r\n\r\n"; char res[1024]; int ret = request_handler(req, res, sizeof(res)); if (ret == 0) { printf("Response: %s", res); } else { printf("Request failed."); }
在以上調(diào)用中,請求的內(nèi)容并不影響返回的結(jié)果。調(diào)用結(jié)果會(huì)直接輸出到控制臺(tái)上:
Response: {"name":"Jack","age":20,"gender":"male"}
可以看到,成功調(diào)用了請求處理函數(shù),并得到了一個(gè)符合 JSON 格式的字符串。本次介紹的僅是一個(gè)最簡單的示例,開發(fā)者可以自行修改其中的屬性內(nèi)容以及對應(yīng)的處理邏輯,根據(jù)不同的業(yè)務(wù)需求返回不同的 JSON 數(shù)據(jù)。