C語言中有很多時間和日期的處理,其中DATETIME是一個很重要的類型。而JSON格式也在各種系統和應用中廣泛應用。接下來我們來看看如何將DATETIME轉換為JSON格式。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <jansson.h> int main(int argc, char** argv) { json_t* root = json_object(); time_t now = time(NULL); struct tm* ptm = localtime(&now); char time_buf[26]; memset(time_buf, 0, sizeof(time_buf)); strftime(time_buf, sizeof(time_buf), "%Y-%m-%d %H:%M:%S", ptm); json_object_set_new(root, "time", json_string(time_buf)); char* result = json_dumps(root, JSON_PRESERVE_ORDER | JSON_INDENT(4)); printf("%s\n", result); json_decref(root); free(result); return 0; }
以上代碼中,我們調用了大量C語言的時間相關函數。在聲明json_t對象指針root后,調用time_t函數獲取當前時間,并使用localtime函數將其轉為結構體tm類型數據。然后我們使用strftime將時間格式化為我們需要的"%Y-%m-%d %H:%M:%S"格式的字符串,并將結果用json_object_set_new函數加入到root對象中,作為一個字符串類型的"time"鍵值。
在最后一行代碼中,我們調用了json_dumps函數將root對象轉換成JSON格式的字符串,并使用STDOUT輸出。此時的JSON字符串就可以被一般的JSON庫直接解析和使用了。