Dictionary 将map[string][]字符串转换为yaml结构

Dictionary 将map[string][]字符串转换为yaml结构,dictionary,go,yaml,Dictionary,Go,Yaml,我尝试将makemap[string]字符串转换为yaml,如下所示: Yaml输出期望: 键、值是这个字符串的listKey映射。J=string={key1:value1,key2:value2} type Items struct { items string ItemsValues map[string][]string } func ConvertToYelm(j string){ y := Items{} var dataJson map[string]string err

我尝试将makemap[string]字符串转换为yaml,如下所示:

Yaml输出期望:

键、值是这个字符串的listKey映射。J=string={key1:value1,key2:value2}

type Items struct {
 items string
 ItemsValues map[string][]string
 }

func ConvertToYelm(j string){
y := Items{}

var dataJson map[string]string
err := json.Unmarshal([]byte(j), &dataJson)
if err != nil {
    fmt.Println(err)
    return
}
listKey := make(map[string]string)

for k := range dataJson{
   listKey[k] = k
}

yelm, err := yaml.Marshal(listKey)
if err != nil {
   fmt.Println(err)
   return
}
err = yaml.Unmarshal(yelm, Items)
if err != nil {
    fmt.Println(err)
    return
}
yeml2, err := yaml.Marshal(&yelm)
fmt.Printf ("%s", string(yeml2))

老实说,我在这里有点迷路了,谢谢你的帮助,从你的帖子中获得了确切的YAML:

items:
    keys1:value1
    keys2:value2
    keys3:value3
    keys4:value4
您可以这样做:


另外,我看到您的代码正在解码这个JSON{key1:value1,key2:value2,…},然后以您指定的格式将其编码为YAML。以下是相关信息。

要从您的帖子中获得准确的YAML,请执行以下操作:

items:
    keys1:value1
    keys2:value2
    keys3:value3
    keys4:value4
您可以这样做:


另外,我看到您的代码正在解码这个JSON{key1:value1,key2:value2,…},然后以您指定的格式将其编码为YAML。这是解决这个问题的方法。

怎么弄丢的?请显示所有代码,包括导入和示例数据。同时显示所需的输出和实际得到的结果。你的结构有一个字符串到字符串片的映射,这看起来不像你期望的输出。怎么会丢失?请显示所有代码,包括导入和示例数据。同时显示所需的输出和实际得到的结果。您的结构有一个字符串到字符串片段的映射,这看起来不像您期望的输出。
package main

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

type ItemsStruct struct {
    Items map[string]string `yaml:"items"`
}

func main() {
    itms := &ItemsStruct{Items: map[string]string{
        "keys1": "value1",
        "keys2": "value2",
        "keys3": "value3",
        "keys4": "value4"}}

    yamlBytes, err := yaml.Marshal(itms)
    if err != nil {
        //handle error
    }

    fmt.Println(string(yamlBytes))
}