Dictionary 将map[string][]字符串转换为yaml结构
我尝试将makemap[string]字符串转换为yaml,如下所示: Yaml输出期望: 键、值是这个字符串的listKey映射。J=string={key1:value1,key2:value2}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
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))
}