2017-12-21 20 views
1

내가 가지고있는 문제는 따옴표가없는 것입니다 YAML 파일 을 분석 한 후 작성 다음과 같은 구조체문제 분석 YAML 파일

파일

in.yaml

예를 들어,

_schema: "3.0.0" 
bar: 
- one 

파일 당신은 내가 3.0.0을 가지고 볼 수 있듯이 대신이 "3.0.0", 어떤 생각이

을 극복하는 방법

_schema: 3.0.0 
bar: 
- one 

out.yaml

문제를 설명하기 위해 만든 작은 프로그램입니다.

package main 

import (
    "gopkg.in/yaml.v2" 
    "io/ioutil" 
) 

type Config struct { 
    Schema string `yaml:"_schema"` 
    Bar []string 
} 

func main() { 

    cfg := Config{} 
    source, err := ioutil.ReadFile("in.yaml") 
    if err != nil { 
     panic(err) 
    } 
    err = yaml.Unmarshal([]byte(source), &cfg) 
    if err != nil { 
     panic(err) 
    } 
    y, _ := yaml.Marshal(&cfg) 
    err = ioutil.WriteFile("out.yaml", y, 0644)} 

} 
+2

따옴표가 필요한 이유는 무엇입니까? 그것은 단지 문자열이기 때문에 중요하지 않습니다. – tinita

답변

2

YAML 표준에서는 이스케이프 시퀀스를 사용하거나 특정 문자를 사용할 때만 모든 값의 인용 부호가 필요하지 않습니다.

이 라이브러리는 필요할 때만 문자열 주변에 "..."을 추가합니다. 예를 들어 문자열에서 콜론 (try : "3 : 0 : 0")을 사용했다면 큰 따옴표로 표시됩니다.