在C語言編程中,將JSON轉換為數組是一項常見任務。JSON(JavaScript對象表示法)是一種數據格式,常用于Web應用程序中。將JSON轉換為數組可以幫助程序員從中獲取或解析數據,并對其執行特定的操作。下面是一個簡單的C程序,演示如何將JSON轉換為數組。
#include#include #include #include int main() { char *json_string = "{\n" " \"name\": \"John Smith\",\n" " \"age\": 30,\n" " \"address\": {\n" " \"street\": \"123 Main St.\",\n" " \"city\": \"Anytown\",\n" " \"state\": \"NY\",\n" " \"zip\": \"12345\"\n" " },\n" " \"phone numbers\": [\n" " {\n" " \"type\": \"home\",\n" " \"number\": \"555-555-1234\"\n" " },\n" " {\n" " \"type\": \"work\",\n" " \"number\": \"555-555-5678\"\n" " }\n" " ]\n" "}"; cJSON *root = cJSON_Parse(json_string); cJSON *address = cJSON_GetObjectItem(root, "address"); char *street = cJSON_GetObjectItem(address, "street")->valuestring; char *city = cJSON_GetObjectItem(address, "city")->valuestring; char *state = cJSON_GetObjectItem(address, "state")->valuestring; char *zip = cJSON_GetObjectItem(address, "zip")->valuestring; printf("Street: %s\n", street); printf("City: %s\n", city); printf("State: %s\n", state); printf("Zip: %s\n", zip); cJSON_Delete(root); return 0; }
在上面的程序中,首先定義了一個JSON字符串。然后使用cJSON_Parse函數將其轉換為一個cJSON對象,這個對象可以包含任意數量的鍵值對、數組和嵌套對象。接下來通過調用cJSON_GetObjectItem函數獲取JSON數組中的元素,并將它們存儲在C語言變量中。最后,使用cJSON_Delete函數釋放cJSON對象。