第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將結(jié)構(gòu)解組為包含注釋的字符串

將結(jié)構(gòu)解組為包含注釋的字符串

Go
至尊寶的傳說(shuō) 2022-06-21 10:23:54
我想部分讀取yaml,即解碼Type/Description鍵,但將Sample定義結(jié)構(gòu)的鍵-保留為純字符串。目的是定義用于解碼的測(cè)試數(shù)據(jù)集。例子:type: defaultdescription: test datasample:  some: # want    complex: # comments    - struct # included我希望子鍵sample作為純字符串返回。我嘗試使用帶有解組器接口(gopkg.in/yaml.v2)的別名類型:type plain string // implements UnmarshalYAML但以:panic: yaml: unmarshal errors:  line 4: cannot unmarshal !!map into []uint8我找不到使用UnmarshalYAML自定義字符串類型或強(qiáng)制轉(zhuǎn)換為字符串的簡(jiǎn)單方法?
查看完整描述

2 回答

?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

您應(yīng)該知道,通過(guò)閱讀評(píng)論,您違反了 YAML 規(guī)范,該規(guī)范明確規(guī)定評(píng)論不得傳達(dá)內(nèi)容信息。


無(wú)論如何,go-yaml v3 提供了yaml.Node中間子結(jié)構(gòu)的類型:


package main


import (

  "fmt"

  "gopkg.in/yaml.v3"

)


type file struct {

  Type string

  Description string

  Sample yaml.Node

}


var input []byte = []byte(`

type: default

description: test data

sample:

  some: # want

    complex: # comments

    - struct # included

`)


func main() {

  var f file

  var err error

  if err = yaml.Unmarshal(input, &f); err != nil {

    panic(err)

  }

  var out []byte

  if out, err = yaml.Marshal(&f.Sample); err != nil {

    panic(err)

  }

  fmt.Println(string(out))

}

這打印


some: # want

    complex: # comments

      - struct # included

它通過(guò)將結(jié)構(gòu)存儲(chǔ)到 a中來(lái)工作yaml.Node,它確實(shí)存儲(chǔ)了評(píng)論。然后它將節(jié)點(diǎn)呈現(xiàn)為獨(dú)立的 YAML 文檔。


您可以通過(guò)瀏覽節(jié)點(diǎn)結(jié)構(gòu)來(lái)訪問(wèn)評(píng)論。


該字符串與原始字符串不同,因?yàn)?YAML 在加載時(shí)總是會(huì)丟失一些信息。如果您需要以精確間距獲取值,則確實(shí)需要將子樹(shù)編碼為文字塊標(biāo)量,就像您在答案中顯示的那樣。


查看完整回答
反對(duì) 回復(fù) 2022-06-21
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

我通過(guò)sample在 yaml 中定義為字符串來(lái)修改我的方法:


type: default

description: test data

sample: |

  some: # want

    complex: # comments

    - struct # included

這更像是一種解決方法,但是一個(gè)簡(jiǎn)單的...


查看完整回答
反對(duì) 回復(fù) 2022-06-21
  • 2 回答
  • 0 關(guān)注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)