在C語言中,匿名對象指的是沒有名字的對象,在創建之后無法直接使用或修改。Json是一種輕量級數據交換格式,以鍵值對的形式存儲數據,常用于前后端數據傳輸。
{ "name": "Tom", "age": 18, "gender": "male" }
將C語言中的結構體轉換為Json格式,可以使用第三方庫cJSON。cJSON提供了一系列的API,可將C語言結構體對象轉換為Json格式的字符串,也可以將Json格式的字符串轉換為C語言結構體對象。
typedef struct student { char name[20]; int age; char gender[10]; } Student; // 將結構體對象轉換為Json格式的字符串 Student s; strcpy(s.name, "Tom"); s.age = 18; strcpy(s.gender, "male"); cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", s.name); cJSON_AddNumberToObject(root, "age", s.age); cJSON_AddStringToObject(root, "gender", s.gender); char *json_str = cJSON_PrintUnformatted(root); printf("%s\n", json_str); // 將Json格式的字符串轉換為結構體對象 char *json = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; cJSON *obj = cJSON_Parse(json); Student s2; strcpy(s2.name, cJSON_GetObjectItem(obj, "name")->valuestring); s2.age = cJSON_GetObjectItem(obj, "age")->valueint; strcpy(s2.gender, cJSON_GetObjectItem(obj, "gender")->valuestring); printf("%s %d %s\n", s2.name, s2.age, s2.gender); cJSON_Delete(root); cJSON_Delete(obj); free(json_str);
使用cJSON庫可以方便地將C語言結構體對象轉換為Json格式的字符串,也可以將Json格式的字符串轉換為C語言結構體對象。這對于前后端數據交互非常有用。