C語言是一種非常流行的編程語言,被廣泛地使用在各種應用場景中。而隨著移動應用和互聯網技術的發展,返回json數據成為了許多程序員不可避免的需求。下面,我們將從C語言的角度,介紹如何返回json數據。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> // 定義一個json結構體 typedef struct { char *name; char *value; } Json; // 定義一個json數組結構體 typedef struct { int size; Json *jsonArray; } JsonArray; // 將json數據轉換為字符串 char* jsonToString(JsonArray *jsonArray) { char *result = (char*)malloc(sizeof(char)*1024); memset(result, 0, sizeof(char)*1024); strcat(result, "{"); for(int i=0;i<jsonArray->size;i++) { strcat(result, "\""); strcat(result, jsonArray->jsonArray[i].name); strcat(result, "\":\""); strcat(result, jsonArray->jsonArray[i].value); strcat(result, "\","); } if(strlen(result)>2) { result[strlen(result)-1] = '}'; } else { strcat(result, "}"); } return result; } // 測試jsonToString函數 void test_jsonToString() { Json json1 = {"name", "Tom"}; Json json2 = {"age", "25"}; Json json3 = {"gender", "male"}; Json jsonArray[] = {json1, json2, json3}; JsonArray result = {3, jsonArray}; char *str = jsonToString(&result); printf("%s\n", str); } int main() { test_jsonToString(); return 0; }
在上面的代碼中,我們定義了一個json結構體和一個json數組結構體,用來存儲返回的json數據。然后,我們編寫了一個jsonToString函數,將json數據轉換為字符串。該函數主要利用了字符串拼接的方式,將json數據和相應的字符拼接在一起,最后返回結果。 在測試函數中,我們聲明了一些json數據,并初始化為一個JsonArray結構體。然后,我們調用了jsonToString函數,將json數據轉換為字符串,并打印出結果。可以看到,該函數成功地返回了一串json字符串。