亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用golang解析其中的列表?

如何使用golang解析其中的列表?

Go
繁花不似錦 2022-08-15 17:03:54
示例 yaml 文件:final-result.yml- category: 1  rules:  - name: a    results:    - asset: b      advice: c- category: 2  rules:  - name: d    results:    - asset: e      advice: f我嘗試打包以取消元帥:gopkg.in/yaml.v2package mainimport (    "io/ioutil"    "log"    "gopkg.in/yaml.v2")type FinalResult struct {    category string      `yaml:"category"`    rules    []RulesItem `yaml:"rules,flow"`}type RulesItem struct {    name    string        `yaml:"name"`    results []ResultsItem `yaml:"results,flow"`}type ResultsItem struct {    asset  string `yaml:"asset"`    advice string `yaml:"advice"`}func main() {    var result []FinalResult    content, err := ioutil.ReadFile("final-result.yml")    if err != nil {        log.Fatal(err.Error())        return    }    err = yaml.Unmarshal(content, &result)    if err != nil {        log.Fatal("Failed to parse file ", err)    }    log.Println(result)}但它給出了一個空的結果:[{ []} { []}]
查看完整描述

1 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

根據文檔,您應該公開結構字段,以便 unmarshal 正確填充數據:


僅當導出結構字段時,結構字段才會取消編組(首字母為大寫)


更改類型定義后,您的代碼將按預期方式工作,如下所示:


type FinalResult struct {

    Category string      `yaml:"category"`

    Rules    []RulesItem `yaml:"rules,flow"`

}


type RulesItem struct {

    Name    string        `yaml:"name"`

    Results []ResultsItem `yaml:"results,flow"`

}


type ResultsItem struct {

    Asset  string `yaml:"asset"`

    Advice string `yaml:"advice"`

}


查看完整回答
反對 回復 2022-08-15
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號