C語言中,JSON轉字典是一種常見的操作。JSON是一種輕量級的數據交換格式,而字典則是一種鍵值對的數據結構。本文將介紹如何使用C語言將JSON格式的數據轉換為字典,并提供代碼示例。
#include#include #include "cJSON.h" int main() { char* json_string = "{\"name\":\"john\",\"age\":30,\"city\":\"New York\"}"; cJSON* json = cJSON_Parse(json_string); if (json == NULL) { printf("Error parsing JSON: %s\n", cJSON_GetErrorPtr()); exit(1); } if (!cJSON_IsObject(json)) { printf("JSON is not an object\n"); exit(1); } cJSON* json_iter = json->child; while (json_iter != NULL) { printf("%s: ", json_iter->string); if (cJSON_IsString(json_iter)) { printf("%s\n", json_iter->valuestring); } else if (cJSON_IsNumber(json_iter)) { printf("%d\n", json_iter->valueint); } else { printf("Unknown type\n"); } json_iter = json_iter->next; } cJSON_Delete(json); return 0; }
以上代碼使用了cJSON庫來解析JSON格式的數據,并將其轉換為字典格式。代碼中首先定義了一個JSON字符串,然后通過cJSON_Parse()函數將其解析為一個cJSON對象。如果解析失敗,將打印出錯誤信息并退出程序。接著,代碼檢查對象是否為JSON對象類型,如果不是則打印錯誤信息并退出程序。代碼通過循環遍歷cJSON對象的child屬性,獲取字典中所有的鍵值對,依次打印出鍵名和對應的值。最后,使用cJSON_Delete()函數釋放資源并返回0。