C語言中解析多層JSON對象需要使用第三方庫,比如cJSON。cJSON是一種無依賴、輕量級的C語言JSON解析庫,能夠方便地解析復雜的JSON數據結構。
// 定義JSON字符串 char* json_str = "{ \ \"name\": \"John Smith\", \ \"age\": 25, \ \"address\": { \ \"street\": \"Main Street\", \ \"city\": \"New York\" \ } \ }"; // 解析JSON字符串 cJSON* root = cJSON_Parse(json_str); // 獲取name字段值 cJSON* name = cJSON_GetObjectItem(root, "name"); printf("Name: %s\n", name->valuestring); // 獲取age字段值 cJSON* age = cJSON_GetObjectItem(root, "age"); printf("Age: %d\n", age->valueint); // 獲取address字段值 cJSON* address = cJSON_GetObjectItem(root, "address"); // 獲取street字段值 cJSON* street = cJSON_GetObjectItem(address, "street"); printf("Street: %s\n", street->valuestring); // 獲取city字段值 cJSON* city = cJSON_GetObjectItem(address, "city"); printf("City: %s\n", city->valuestring); // 釋放內存 cJSON_Delete(root);
在以上代碼中,我們定義了一個JSON字符串,然后使用cJSON_Parse函數解析該字符串。接著,我們可以使用cJSON_GetObjectItem函數獲取JSON對象的各個字段值。需要注意的是,如果字段值為對象類型,則需要繼續使用cJSON_GetObjectItem函數獲取其內部字段值。
解析多層JSON對象需要我們重復使用cJSON_GetObjectItem函數,獲取對象的內嵌字段值。這一過程可通過遞歸實現。
上一篇data轉json格式
下一篇Vue APP使用指引