JSON是一種輕量級的數據交換格式,廣泛應用于Web開發和API調用中。在C語言中,我們可以通過初始化結構體來創建JSON對象。
#include <stdio.h> #include <stdlib.h> #include <string.h> // 定義JSON結構體 typedef struct json_t { int type; union { char* string; int number; struct json_t* subjson; } data; } json_t; // 初始化字符串類型的JSON對象 json_t* init_string_json(char* str) { json_t* json = (json_t*)malloc(sizeof(json_t)); json->type = 1; //1表示字符串類型 json->data.string = (char*)malloc(strlen(str) + 1); strcpy(json->data.string, str); return json; } // 初始化整數類型的JSON對象 json_t* init_number_json(int num) { json_t* json = (json_t*)malloc(sizeof(json_t)); json->type = 2; //2表示整數類型 json->data.number = num; return json; } // 初始化子JSON對象 json_t* init_subjson(json_t* subjson) { json_t* json = (json_t*)malloc(sizeof(json_t)); json->type = 3; //3表示子JSON對象類型 json->data.subjson = subjson; return json; } int main() { // 初始化JSON對象 json_t* json = init_string_json("Hello World"); json_t* subjson = init_number_json(123); json_t* root = init_subjson(subjson); // 輸出JSON對象類型和內容 printf("json type: %d\njson content: %s\n", json->type, json->data.string); printf("subjson type: %d\nsubjson content: %d\n", subjson->type, subjson->data.number); printf("root type: %d\nsubjson type: %d\nsubjson content: %d\n", root->type, root->data.subjson->type, root->data.subjson->data.number); // 釋放內存 free(json->data.string); free(json); free(subjson); free(root); return 0; }
在上面的代碼中,我們定義了一個JSON結構體,包含三種類型的數據:字符串、整數和子JSON對象。隨后,我們分別定義了三個函數來初始化這三種類型的JSON對象。
在main函數中,我們通過這三個函數分別初始化了一個字符串類型的JSON對象、一個整數類型的JSON對象和一個子JSON對象,然后輸出了它們的類型和內容。最后,我們釋放了這些JSON對象所占用的內存。
上一篇vue動態重新渲染
下一篇python 網上鄰居