我正在尝试读取类似于我在Python中所做的YAML文件。但是我不知道如何使用任意键。我有以下我想阅读的YAML:
apple:
name: item1
banana:
name: item2
我知道如何读取文件,但只能使用空接口。我想把它作为我的项目类型的映射读入。
package main
import (
"fmt"
"log"
"gopkg.in/yaml.v2"
)
type Item struct {
Name string `yaml:"name"`
}
func main() {
input := `
apple:
name: item1
banana:
name: item2`
m := make(map[interface{}]interface{})
err := yaml.Unmarshal([]byte(input), &m)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("%v \n", m)
}
我在Stdout中得到的内容:
map[apple:map[name:item1] banana:map[name:item2]]
我想看到的是:
map[apple:{item1} banana:{item2}]
如何将我的 YAML 文件读入项目地图?
应该使用< code > m:= make(map[string]Item)。
为了使解组按照您想要的方式工作,您应该提供指令。在您的情况下,如果您不想在映射中命名,请提供一个结构来散集。
所以 m := make(map[interface{}]interface{}) 应该更改为 m := make(map[
string]Item)
package main
import (
"fmt"
"log"
"gopkg.in/yaml.v2"
)
type Item struct {
Name string `yaml:"name"`
}
func main() {
input := `
apple:
name: item1
banana:
name: item2`
m := make(map[string]Item)
err := yaml.Unmarshal([]byte(input), &m)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("%v \n", m)
}
输出: 地图[苹果:{item1} 香蕉:{item2}]
我有一个带有属性映射的YAML配置文件: 引导将解析为: 下面的实际示例。 : 对结果对象调用:
问题内容: 我正在尝试使用Go解析YAML文件。问题在于YAML文件中的密钥可能并不总是相同。这是为了进行API版本控制,以便用户可以定义他们支持的版本。例如V1,V2,V3等。它们不需要按顺序排列,并且可以省略它们不支持的版本,例如V0,V2,V5等。 这是最高层,我还没有从结构内部弄清楚如何做到这一点。 问题答案: 首先,您尝试将根解析为,但其实际类型为。其次,如果要保留该类型结构,则需要一个
我正在尝试使用 Go 解析 YAML 文件。问题是 YAML 文件中的键可能并不总是相同的。这是为了执行 API 版本控制,以便用户可以定义他们支持的版本。例如 V1、V2、V3 等。它们不需要按顺序排列,可以省略它们不支持的版本,即 V0、V2、V5 等。 我在这里看到一个类似的问题 这是顶层,我还没有完全弄清楚如何从结构内部执行此操作。
问题内容: 我想用Android上的任何键解析JSON。JSON数据包含任何键,数组或值。这是JSON数据和我的工作代码。我想通过使用JSON解析将JSON数据放入类中。 JSON数据: 我的代码: 请帮我。 问题答案: 是的,这是可能的。 将收到的JSON放在中。您可以循环通过并从中退出。 例: 我希望这就是你想要的
问题内容: 我将如何在Python中“按任意键”(或抓住菜单选项)? raw_input要求您按回车键。 Windows msvcrt具有getch()和getche()。 有使用标准库执行此操作的可移植方法吗? 问题答案:
问题内容: 如何在Python中解析YAML文件? 问题答案: 不依赖标头的最简单,最纯净的方法是(文档),可以通过以下方式安装: 就是这样。一个普通的函数也存在,但是除非你明确需要提供的任意对象序列化/反序列化,以避免引入执行任意代码的可能性,否则通常应首选该函数。