C web api是一種使用C語言編寫的Web應用程序接口,它可以與其他編程語言進行交互。JSON是一種輕量級數據交換格式,用于在不同應用程序之間傳輸數據,尤其是在Web應用程序中。因此,在C web api中使用JSON格式非常常見。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { // 創建JSON對象 json_t *json = json_object(); json_object_set_new(json, "name", json_string("John")); json_object_set_new(json, "age", json_integer(30)); // 把JSON對象轉換為字符串 char *str = json_dumps(json, JSON_ENCODE_ANY); // 打印字符串 printf("%s\n", str); // 釋放內存 free(str); json_decref(json); return 0; }
在上面的代碼中,我們首先使用json_object()函數創建一個JSON對象,并使用json_object_set_new()函數設置對象的屬性名和屬性值。然后,我們使用json_dumps()函數將JSON對象轉換為字符串,并使用printf()函數打印輸出。
在C web api中,可以將JSON格式用于POST和PUT請求的請求體中,或作為響應的返回結果。以下是一個使用JSON格式作為請求體的例子:
char *data = "{ \"name\": \"John\", \"age\": 30 }"; CURL *curl = curl_easy_init(); if(curl) { // 設置URL curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/data"); // 設置HTTP請求方法、請求體和請求頭 curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) strlen(data)); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Accept: application/json"); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // 執行請求 CURLcode res = curl_easy_perform(curl); // 釋放內存 curl_slist_free_all(headers); curl_easy_cleanup(curl); }
在上面的代碼中,我們使用CURL庫實現了一個POST請求,其中請求體使用JSON格式,并且設置了請求頭Accept: application/json和Content-Type: application/json。
總的來說,C web api與JSON格式的結合非常靈活,可以幫助開發者更好地傳遞和處理數據。