C語言作為一門底層編程語言,對各種網絡操作提供了強大的支持。其中,HTTP(HyperText Transfer Protocol)作為網絡上最常用的通信協議之一,也可以使用C語言來實現。而在HTTP服務器端向客戶端返回數據時,JSON(JavaScript Object Notation)作為輕量級的數據交換格式,也受到了廣泛的應用。那么,在C語言中如何返回JSON格式的數據呢?
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_str; json_t *root; json_error_t error; // 構造JSON數據 root = json_object(); json_object_set_new(root, "name", json_string("Tom")); json_object_set_new(root, "age", json_integer(18)); json_str = json_dumps(root, JSON_ENSURE_ASCII); // 向客戶端返回JSON數據 printf("Content-Type: application/json\n\n"); printf("%s", json_str); // 釋放資源 json_decref(root); free(json_str); return 0; }
上述代碼使用了jansson庫來構造JSON數據,并通過printf()函數向客戶端返回JSON數據。值得注意的是,在返回數據前需要先設置HTTP頭部的Content-Type為application/json,否則客戶端將無法正確解析JSON數據。除此之外,還需要釋放資源,避免內存泄漏。