Невозможно удалить файлы yaml с отступами или пустыми значениями с помощью gopkg.in/yaml.v2 - PullRequest
1 голос
/ 17 мая 2019

У меня есть следующий YML-файл с именем test.yml

user_name:Agent1
org_info:
  first:hello
  second:world

Я пытался распаковать test.yml с помощью следующего кода Голанга

package main

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

func main() {

  content, _ := ioutil.ReadFile("./test.yml")
  var t interface{}
  yaml.Unmarshal(content, &t)
  log.Println(t)
}

Но log.Println(t) дает nil. Я уменьшил файл test.yml до этого:

user_name:Agent1
org_info:

Но log.Println(t) все еще дает nil.

Как использовать golang для демарширования файла yaml, который имеет непредсказуемую схему, с полями, в которых нет значений, или с полями, которые приводят к вложенным и отступным подполям?

Или есть другой парсер golang yaml, который я должен использовать?

1 Ответ

3 голосов
/ 17 мая 2019

yaml.Unmarshal() возвращает ошибку:

yaml: строка 2: значения сопоставления недопустимы в этом контексте

Никогда ошибка пропускапроверяет:

var t interface{}
err = yaml.Unmarshal(content, &t)
if err != nil {
    log.Fatal(err)
}

Добавляя пропущенные пробелы после двоеточия , превращая их в индикаторы значения YAML:

user_name: Agent1
org_info:
  first: hello
  second: world
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...