【问题标题】:How to pass a JSON data set as a string in a YAML file?如何在 YAML 文件中将 JSON 数据集作为字符串传递?
【发布时间】:2018-12-30 09:38:49
【问题描述】:

我怎样才能有一个 YAML 格式的密钥,它接受 json 数据作为字符串?我试图将 json 数据放在引号中,但它读取为地图列表。

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

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

我得到以下错误:

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

【问题讨论】:

    标签: json go yaml


    【解决方案1】:

    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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 2015-07-05
      • 1970-01-01
      • 2013-01-19
      相关资源
      最近更新 更多