在C語言中,我們可以使用第三方庫json-c來操作JSON數(shù)據(jù)。其中,常用的函數(shù)如下:
cJSON *cJSON_CreateObject(); // 創(chuàng)建JSON對象 cJSON *cJSON_CreateArray(); // 創(chuàng)建JSON數(shù)組 cJSON *cJSON_CreateString(const char *value); // 創(chuàng)建JSON字符串 cJSON *cJSON_CreateNumber(double value); // 創(chuàng)建JSON數(shù)字 cJSON *cJSON_CreateBool(int b); // 創(chuàng)建JSON布爾值
那么如果我們需要在C語言中嵌套JSON數(shù)據(jù),該如何操作呢?
首先我們創(chuàng)建一個JSON對象:
cJSON *root = cJSON_CreateObject();
然后,我們可以在對象中添加鍵值對:
cJSON_AddItemToObject(root, "name", cJSON_CreateString("Tom")); cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(18));
現(xiàn)在,我們需要在對象中添加一個嵌套的JSON對象。我們可以使用之前的函數(shù)來創(chuàng)建一個新的JSON對象,然后再將它添加到父對象中。
cJSON *address = cJSON_CreateObject(); cJSON_AddItemToObject(address, "city", cJSON_CreateString("Shanghai")); cJSON_AddItemToObject(address, "street", cJSON_CreateString("Nanjing Road")); cJSON_AddItemToObject(address, "zipcode", cJSON_CreateString("200001")); cJSON_AddItemToObject(root, "address", address);
同樣地,我們也可以在JSON對象中添加一個嵌套的JSON數(shù)組:
cJSON *hobbies = cJSON_CreateArray(); cJSON_AddItemToArray(hobbies, cJSON_CreateString("reading")); cJSON_AddItemToArray(hobbies, cJSON_CreateString("swimming")); cJSON_AddItemToArray(hobbies, cJSON_CreateString("traveling")); cJSON_AddItemToObject(root, "hobbies", hobbies);
最后,我們可以將此JSON數(shù)據(jù)輸出:
char *json_str = cJSON_Print(root); printf("%s\n", json_str);
通過以上操作,我們就可以在C語言中嵌套使用JSON數(shù)據(jù)了。