C JSON反序列化日期的方法大家可能不太熟悉,下面我來為大家介紹一下:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <jansson.h> int main() { const char *json_str = "{\"time\":\"2021-05-01 09:00:00\", \"other\":\"something else\"}"; json_error_t error; json_t *root, *time; struct tm t; root = json_loads(json_str, 0, &error); time = json_object_get(root, "time"); memset(&t, 0, sizeof(struct tm)); sscanf(json_string_value(time), "%d-%d-%d %d:%d:%d", &t.tm_year, &t.tm_mon, &t.tm_mday, &t.tm_hour, &t.tm_min, &t.tm_sec); t.tm_year -= 1900; t.tm_mon -= 1; time_t timestamp = mktime(&t); printf("Parsed timestamp: %ld\n", timestamp); return 0; }
在這個代碼中,我們首先定義了一個JSON字符串,并將其反序列化為JSON對象。然后我們從對象中獲取時間字段,使用sscanf()函數(shù)將時間字符串解析為結(jié)構(gòu)體成員。最后,我們使用mktime()函數(shù)將時間結(jié)構(gòu)體轉(zhuǎn)換為時間戳并輸出。
這就是關(guān)于C語言中JSON反序列化日期的簡單介紹,希望對大家有所幫助。
上一篇html帶美元代碼