CGI程序在Web開發中扮演著非常關鍵的角色。CGI程序可以與客戶端進行交互,并且可以接收來自客戶端的數據。處理JSON數據也是CGI程序開發的一個重要方面。下面,讓我們來學習一下如何使用CGIC庫處理JSON數據。
#include "cgic.h" #include "cJSON.h" int cgiMain() { char *json_str = "{\"name\":\"CGIC\",\"version\":\"v00001\",\"author\":\"XXXX\"}"; cJSON *root = cJSON_Parse(json_str); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *version = cJSON_GetObjectItem(root, "version"); cJSON *author = cJSON_GetObjectItem(root, "author"); cgiHeaderContentType("application/json"); fprintf(cgiOut, "{\n\"name\":\"%s\",\n\"version\":\"%s\",\n\"author\":\"%s\"\n}", name->valuestring, version->valuestring, author->valuestring); cJSON_Delete(root); return 0; }
代碼解析:
1. 引入CGIC庫和cJSON庫。
#include "cgic.h" #include "cJSON.h"
2. 給定一個JSON字符串。
char *json_str = "{\"name\":\"CGIC\",\"version\":\"v00001\",\"author\":\"XXXX\"}";
3. 解析JSON字符串。
cJSON *root = cJSON_Parse(json_str);
4. 獲取JSON中的對象。
cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *version = cJSON_GetObjectItem(root, "version"); cJSON *author = cJSON_GetObjectItem(root, "author");
5. 設置HTTP響應Content-Type為application/json。
cgiHeaderContentType("application/json");
6. 輸出JSON格式的字符串。
fprintf(cgiOut, "{\n\"name\":\"%s\",\n\"version\":\"%s\",\n\"author\":\"%s\"\n}", name->valuestring, version->valuestring, author->valuestring);
7. 釋放解析結果占用的內存。
cJSON_Delete(root);
本文簡短地介紹了CGIC庫處理JSON數據的方法。希望讀者通過本文的學習,掌握CGIC庫處理JSON數據的方法。