處理 JSON 資料時,常會遇到包含巢狀物件或陣列的物件。在 Go 中迭代這些結構可能是一項複雜的任務。
在提供的範例中,我們有一個具有多層巢狀的 JSON 輸入。任務是迭代物件並將鍵值對提取為字串。
建議的方法是使用型別斷言和遞歸函數。遞歸函數可以向下遍歷複雜的 JSON 結構,在每個巢狀物件或陣列上遞歸地呼叫自身。
以下是遍歷巢狀JSON 結構並列印鍵值對的遞歸函數範例:
func parseMap(m map[string]interface{}) { for key, val := range m { switch val.(type) { case map[string]interface{}: parseMap(val.(map[string]interface{})) case []interface{}: parseArray(val.([]interface{})) default: fmt.Println(key, ":", val) } } } func parseArray(arr []interface{}) { for i, val := range arr { switch val.(type) { case map[string]interface{}: parseMap(val.(map[string]interface{})) case []interface{}: parseArray(val.([]interface{})) default: fmt.Println("Index:", i, ":", val) } } }
在此範例中,在巢狀對應上遞歸呼叫parseMap 函數,並呼叫parseArray函數在巢狀數組上遞歸。透過使用類型斷言,我們可以確定每個值的類型並進行相應的處理。
要執行程式碼,您可以使用 json 將輸入 JSON 解組到映射中.Unmarshal 函數。然後,呼叫 parseMap 函數,將未編組的映射作為參數傳遞。將列印輸出,顯示提取的鍵值對。
這種使用型別斷言和遞歸函數的方法提供了一種有條理且有效的方法來遍歷和檢查巢狀中的值JSON 結構。透過了解資料結構並使用這些技術,您可以有效地提取和處理鍵值對以進行進一步的分析或處理。
以上是如何在 Go 中高效地迭代巢狀 JSON 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!