在使用C編寫后臺程序時,常常需要接收從前端傳遞過來的JSON數據。下面簡單介紹一下C后臺如何接收JSON數據。
首先,我們需要明確前端傳遞JSON數據的格式。在前端使用ajax發送JSON數據時,可以使用如下代碼:
$.ajax({ type: "POST", url: "url", dataType: "json", data: JSON.stringify({key1: value1, key2: value2}), success: function(data) { // 回調函數 } });
以上代碼將JSON數據通過POST方式發送到指定的后臺接口。在后臺接口中,我們需要使用CGI或FastCGI等技術去解析POST請求中的JSON數據。
接下來,我們可以使用如下代碼解析JSON數據:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcgi_stdio.h> #include <json-c/json.h> int main(void) { char *content_type = "Content-type: application/json\r\n\r\n"; printf("%s", content_type); char *content = getenv("CONTENT_LENGTH"); int length = atoi(content); char *post_data = malloc(length + 1); memset(post_data, 0, length + 1); fread(post_data, 1, length, stdin); struct json_object *json; enum json_tokener_error json_err; json = json_tokener_parse_verbose(post_data, &json_err); // 在這里對JSON數據進行處理 return 0; }
以上代碼中,我們使用了json-c庫來解析JSON數據,并通過stdin讀取POST請求中的JSON數據。通過以上代碼,我們就可以在C后臺中接收并解析JSON數據了。