在前后端分離的架構(gòu)中,前端與后端通信的方式采用了JSON格式。這里我們將介紹c語(yǔ)言如何通過傳遞JSON數(shù)據(jù)給前端。
首先,c語(yǔ)言需要引用json-c庫(kù),可以通過以下命令進(jìn)行安裝:
sudo apt-get install libjson-c-dev
接下來,我們需要將數(shù)據(jù)轉(zhuǎn)換成json格式,這里以將一個(gè)結(jié)構(gòu)體數(shù)組轉(zhuǎn)換為json格式為例:
#include <json-c/json.h> #include <stdio.h> struct person { char* name; int age; }; int main() { struct person people[2] = { {"Lucy", 20}, {"Mike", 21} }; // 創(chuàng)建json對(duì)象 json_object* root = json_object_new_object(); json_object* arr = json_object_new_array(); for (int i = 0; i< 2; i++) { // 創(chuàng)建子json對(duì)象 json_object* obj = json_object_new_object(); json_object_object_add(obj, "name", json_object_new_string(people[i].name)); json_object_object_add(obj, "age", json_object_new_int(people[i].age)); // 添加到數(shù)組 json_object_array_add(arr, obj); } // 添加到根json對(duì)象 json_object_object_add(root, "people", arr); // 輸出json字符串 printf("%s\n", json_object_to_json_string_ext(root, JSON_PRETTY)); // 釋放資源 json_object_put(root); return 0; }
上述代碼中,我們首先創(chuàng)建一個(gè)json對(duì)象,然后創(chuàng)建一個(gè)存放person結(jié)構(gòu)體數(shù)組的json數(shù)組,再遍歷數(shù)組中的元素,將每個(gè)元素轉(zhuǎn)換為json對(duì)象,并添加到j(luò)son數(shù)組中。最后將json數(shù)組添加到根json對(duì)象中,并將整個(gè)json對(duì)象轉(zhuǎn)換為字符串輸出。
最后,將生成的json字符串通過HTTP協(xié)議發(fā)送給前端即可。