C語言是一門面向過程的編程語言,在項目的開發過程中,常常需要處理JSON格式的數據。而時間在JSON中是以字符串的形式存在的,需要進行反序列化處理才能轉換為時間類型。
#include <stdio.h> #include <string.h> #include <time.h> #include <cjson/cJSON.h> int main() { char *jsonString = "{\"time\": \"2021-10-20 19:20:30\"}"; cJSON *root = cJSON_Parse(jsonString); cJSON *timeNode = cJSON_GetObjectItem(root, "time"); struct tm stm; memset(&stm, 0, sizeof(struct tm)); strptime(timeNode->valuestring, "%Y-%m-%d %H:%M:%S", &stm); time_t timestamp = mktime(&stm); printf("The timestamp is: %ld", timestamp); cJSON_Delete(root); return 0; }
在這個例子中,我們從JSON字符串中取出time字段的值,使用strptime函數將字符串轉換為struct tm結構體,最后將struct tm結構體轉換為time_t格式的時間戳。
通過這種方式,我們就能夠很方便地處理JSON中的時間類型數據了。