在C語言中,我們可以使用JSON格式來表示數據。雙層JSON字符串則是指在一個JSON對象內部,還嵌套了一個JSON對象。在處理JSON數據時,雙層JSON字符串是非常常見的。
// 假設原始的JSON字符串為以下內容 char json[] = "{\n\t\"name\": \"Jack\",\n\t\"age\": 18,\n\t\"address\": {\n\t\t\"province\": \"Shanghai\",\n\t\t\"city\": \"Shanghai\",\n\t\t\"detail\": \"Room 101, No. 1 Building, No. 888 Street\"\n\t}\n}"; // 下面是如何解析雙層JSON字符串 json_t *root; json_t *address; // 將JSON字符串轉為JSON對象 root = json_loads(json, 0, NULL); // 從根節點獲取address對象 address = json_object_get(root, "address"); // 從address對象中獲取具體的字段值 const char *province = json_string_value(json_object_get(address, "province")); const char *city = json_string_value(json_object_get(address, "city")); // ... // 最后釋放JSON對象 json_decref(root);
上面的代碼中,我們首先將JSON字符串轉為JSON對象,然后通過json_object_get函數獲取嵌套在根節點內的address對象。接下來,我們可以通過json_object_get函數從address對象內獲取具體的字段值,方便我們后續進行數據處理。