C Table是一種在C程序中使用的動(dòng)態(tài)表格存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)。JSON(JavaScript Object Notation)則是一種輕量級(jí)的數(shù)據(jù)交換格式,常用于前后端交互和網(wǎng)絡(luò)傳輸。
在C Table中使用JSON數(shù)據(jù)格式可以方便地對(duì)數(shù)據(jù)進(jìn)行解析和處理。下面是一個(gè)使用C Table存儲(chǔ)JSON數(shù)據(jù)的示例:
#include <stdio.h> #include <string.h> #include <ctable.h> #include <jansson.h> int main() { char *json_str = "{ \"name\": \"Tom\", \"age\": 20, \"gender\": \"male\" }"; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "[ERROR] on line %d: %s\n", error.line, error.text); return 1; } ctable_t *ct = ctable_new(); ctable_set_cols(ct, 2); ctable_set_header(ct, 0, "Key"); ctable_set_header(ct, 1, "Value"); size_t index; json_t *value; const char *key; json_object_foreach(root, key, value) { ctable_add_rows(ct, 1); index = ctable_rows(ct) - 1; ctable_set_cell(ct, index, 0, key); if (json_is_string(value)) { ctable_set_cell(ct, index, 1, json_string_value(value)); } else { ctable_set_cell(ct, index, 1, json_dumps(value, JSON_ENCODE_ANY)); } } json_decref(root); ctable_print(ct); ctable_free(ct); return 0; }
該示例代碼將一個(gè)JSON字符串解析為json_t類(lèi)型的數(shù)據(jù),然后使用C Table存儲(chǔ)數(shù)據(jù)。將JSON的key作為表格的第一列,將value作為表格的第二列,最后使用ctable_print函數(shù)輸出表格。
需要注意的是,由于C語(yǔ)言沒(méi)有直接支持JSON數(shù)據(jù)格式的解析和操作,需要使用第三方庫(kù)json-c和ctable來(lái)實(shí)現(xiàn)JSON數(shù)據(jù)的處理。