Json是一種輕量級的數據交換格式,常用于異構系統之間數據傳遞。在C語言中,我們也可以定義一個Json數據類型。
typedef struct Json { enum { JSON_NULL, JSON_FALSE, JSON_TRUE, JSON_NUMBER, JSON_STRING, JSON_ARRAY, JSON_OBJECT } type; union { double n; struct { char* s; size_t len; } s; struct { struct Json* e; size_t size; } a; struct { char* k; struct Json* v; size_t size; } o; } u; } Json;
上述代碼中我們使用了一個包含各種不同類型值的聯合體。Json類型中包含枚舉變量type及其對應的聯合體u。
Json類型中的枚舉變量type有七種取值:JSON_NULL、JSON_FALSE、JSON_TRUE、JSON_NUMBER、JSON_STRING、JSON_ARRAY和JSON_OBJECT。
JSON_NULL代表空值類型,JSON_FALSE與JSON_TRUE代表布爾類型,JSON_NUMBER代表數值類型,JSON_STRING代表字符串類型,JSON_ARRAY代表數組類型,JSON_OBJECT代表對象類型。
在union中,我們根據不同類型值定義了對應的結構體。
其中,對于字符串類型,我們使用了一個包含指向字符串地址及其長度的結構體s。
對于數組類型,我們使用了一個包含數組指針及其長度的結構體a。
最后,對于對象類型,我們使用了一個包含鍵指針、值指針及其長度的結構體o。
通過使用這些結構體,我們可以更好地表現不同類型的Json數據。
上一篇python 求解單純形
下一篇vue關閉當前界面