C語言是一門強大的編程語言,在web開發和移動應用開發中,我們常常需要將數據以json類型返回。C語言中有很多方法可以實現這一功能,比如使用第三方庫或自行編寫函數。下面我們來介紹一種自行編寫函數返回json數據類型的方式。
#include <stdio.h> #include <stdlib.h> #include <string.h> struct json_value { char *key; char *value; }; char* json_encode(struct json_value* values, int count) { char *json = malloc(1024 * 1024); json[0] = '{'; int k = 1; for (int i = 0; i < count; i++) { k += sprintf(&json[k], "\"%s\":\"%s\"", values[i].key, values[i].value); if (i < count - 1) { json[k] = ','; k++; } } json[k] = '}'; json[k+1] = '\0'; return json; } int main() { struct json_value values[3]; values[0].key = "name"; values[0].value = "John"; values[1].key = "age"; values[1].value = "28"; values[2].key = "gender"; values[2].value = "male"; char *json = json_encode(values, 3); printf("%s", json); free(json); return 0; }
上述代碼中,我們定義了一個json_value結構體,用于存儲json中的key和value。然后我們編寫了一個json_encode函數,用于將結構體數組轉換成json字符串。 在本例中,我們將3個key-value對賦值給結構體數組,然后調用json_encode函數,生成json字符串,并打印到控制臺上。 這種方法雖然可能比使用第三方庫的方式麻煩一些,但是它可以讓我們更加深入地理解json類型,為我們的編程能力提供更大的提升。