如何在YAML文件中将JSON数据集作为字符串传递?

时间:2018-07-23 00:19:38

标签: json go yaml

我如何拥有YAML格式的密钥,该密钥可以将json数据接受为字符串?我试图将json数据括在引号中,但它读为地图列表。

test1: '[{'a':'abd','asxs': 'csd','sx':'sft'}]'
test2: default

我希望yaml以字符串形式读取“ test1”,而不是字典/映射列表。我怎么得到它?

我遇到以下错误:

  

解析请求输入时失败:“请求”字段“字符串”   只能解析字节或字符列表,无效元素:   map [“ a”:“ abd”“ asxs”:“ csd”“ sx”:“ sft”]

1 个答案:

答案 0 :(得分:0)

test1定义为string而不是[]map[string]string。您可以使用go-yaml来解析数据并将其加载到struct的字段中。希望我能正确理解您的问题,否则请发表评论。这是一个完整的示例(请务必在开头使用大写字母来定义您的变量,例如Test1

package main

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

func main() {
    var data = `
   test1: "[{ 'a': 'abd', 'ases': 'cad', 'sx': 'sft' }]"
   test2: default
   `

    type T struct {
        Test1 string
        Test2 string
    }
    t := T{}
    err := yaml.Unmarshal([]byte(data), &t)
    if err != nil {
        log.Fatalf("error: %v", err)
    }

    println("test1 value: ", t.Test1)
}