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