在C語言中,我們常常需要將JSON數據轉換成對象。這是因為JSON數據是一種非常靈活的數據格式,可以用于多種場景下的數據傳輸和存儲。而在C語言中,我們可以使用一些第三方庫來實現JSON轉對象的功能,如cJSON庫。
#include <stdio.h> #include <cJSON.h> int main() { char* json_str = "{ \"name\":\"Tom\", \"age\":18, \"address\":{ \"city\":\"Beijing\", \"street\":\"Changping Road\" } }"; cJSON* root = cJSON_Parse(json_str); cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* address = cJSON_GetObjectItem(root, "address"); printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); printf("address: city:%s street:%s\n", cJSON_GetObjectItem(address, "city")->valuestring, cJSON_GetObjectItem(address, "street")->valuestring); cJSON_Delete(root); return 0; }
在上面的代碼中,首先我們需要引入cJSON.h頭文件,然后定義一個JSON字符串,將其解析為一個cJSON對象。
接著,我們可以使用cJSON_GetObjectItem函數來獲取JSON對象中的某個屬性值,如獲取姓名(name)和年齡(age)。如果需要獲取對象類型屬性值,我們還需要再次使用cJSON_GetObjectItem來獲取它對應的cJSON對象。如獲取地址(address)對象,并分別輸出其城市(city)和街道(street)屬性值。
最后,我們需要使用cJSON_Delete函數釋放占用的內存空間。這樣,我們就成功完成了JSON轉對象的過程。