C接口(C programming language interface)是把某個編程語言的應用程序接口(API)封裝為C語言函數調用的集合。
接口返回JSON數據格式對于前后端分離的現代化開發模式非常實用,前后端使用的編程語言不同,通過JSON數據格式進行通信,前后端開發可以同時進行,提高了開發效率。
{ "status": "success", "data": [ { "id": 1, "name": "apple", "price": 2.50 }, { "id": 2, "name": "orange", "price": 1.50 } ] }
JSON數據格式由一對花括號包裹,其中包含了“鍵”和“值”,鍵和值之間使用冒號分隔,值可以是字符串、數字、布爾值、數組和對象。本例中,鍵“status”表示接口返回狀態,值為“success”,鍵“data”表示需要返回的數據,值是一個數組,數組元素是多個水果的對象,每個對象中包含“id”、“name”、“price”三個屬性。
C語言使用第三方庫可以輕松地生成和解析JSON數據格式。如下是使用cJSON庫生成上述JSON數據格式的代碼:
cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "status", "success"); cJSON* dataArr = cJSON_AddArrayToObject(root, "data"); cJSON* dataObj = cJSON_CreateObject(); cJSON_AddNumberToObject(dataObj, "id", 1); cJSON_AddStringToObject(dataObj, "name", "apple"); cJSON_AddNumberToObject(dataObj, "price", 2.50); cJSON_AddItemToArray(dataArr, dataObj); dataObj = cJSON_CreateObject(); cJSON_AddNumberToObject(dataObj, "id", 2); cJSON_AddStringToObject(dataObj, "name", "orange"); cJSON_AddNumberToObject(dataObj, "price", 1.50); cJSON_AddItemToArray(dataArr, dataObj); char* json = cJSON_Print(root); // json指向生成的JSON字符串 cJSON_Delete(root);
CJSON庫提供了豐富的功能,如添加/替換鍵值對、創建/刪除數組/對象、解析JSON字符串等。以上代碼創建了一個空的JSON對象,添加了鍵為“status”、值為“success”的鍵值對,然后創建了一個數組對象,添加了兩個水果的對象,每個對象中分別添加了三個鍵值對。最后調用cJSON_Print函數生成JSON字符串,并在使用完畢后釋放所占用的內存。