php小編子墨發現,許多Go語言開發者在處理yaml檔案時遇到了問題。儘管Go語言提供了load函數用於載入yaml文件,但該函數卻無法正確處理yaml文件的解析。這個問題導致了許多開發者在處理yaml檔案時遇到了困難。那麼,如何解決這個問題呢?在本文中,我們將為大家介紹一些解決方案,幫助開發者順利處理yaml檔案。
我正在嘗試讀取 yaml 檔案並將其儲存在變數中,但由於某種原因,yaml 檔案中的陣列物件無法解組該檔案。它顯示空白數據。
下面是我的yaml檔案內容
--- version: "1.2" bunits: - name: buname bugroupid: asd bustgroupid: asd - name: buname2 bugroupid: asd2 bustgroupid: asd2
下面是正在使用的程式碼
type SResponse struct { Version string `json:"version"` BUnits []BUnit `json:"bUnits"` } type BUnit struct { Name string `json:"name"` BuUnitGroupID string `json:"buGroupID"` BuUnitStGroupID string `json:"buStaticGroupID"` } func main() { _printf := fmt.Printf _printf("Start") var sListResponse SResponse source, err2 := ioutil.ReadFile("squads2.yml") if err2 != nil { _printf("Couldn't read yaml file.") } err2 = yaml.Unmarshal(source, &sListResponse) if err2 != nil { _printf("Error") } _printf("Output: %s\n", sListResponse) }
程式碼讀取版本部分,但 bunits 陣列為空。請提出建議。
您的結構體用json
標記進行裝飾- 您可能需要也可能不需要(取決於您稍後是否以json 格式匯出/匯入此數據)。
但你手邊的問題是 yaml
導入 - 所以你需要用 yaml
標籤來裝飾你的 struct
定義。
要支援 json
和 yaml
編組/解組,只需更新您的標籤,如下所示:
type SResponse struct { Version string `json:"version" yaml:"version"` BUnits []BUnit `json:"bUnits" yaml:"bUnits"` } type BUnit struct { Name string `json:"name" yaml:"name"` BuUnitGroupID string `json:"buGroupID" yaml:"buGroupID"` BuUnitStGroupID string `json:"buStaticGroupID" yaml:"buStaticGroupID"` }
或如果您不需要 json 編碼/解碼,則只需刪除 json
標籤即可。
以上是go Lang load無法處理yaml文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!