将 JSON 数组解析为 Go 数据结构
处理包含数组的 JSON 数据时,选择合适的 Go 数据结构可能具有挑战性解析成.例如,如果一个文件包含一个键值对数组,则尝试使用 map[string]string 可能会导致类似“无法将数组解组为 main.data 类型的 Go 值”之类的错误。
解决方案在于准确识别JSON结构。虽然提供的示例看起来是一个数组,但它实际上是一个地图数组。该文件应类似于以下内容以匹配 map[string]string 结构:
{ "a":"1", "b":"2", "c":"3" }
考虑以下代码片段,演示将映射数组解析为 Go 结构:
package main import ( "encoding/json" "fmt" "io/ioutil" "log" ) type mytype []map[string]string func main() { var data mytype file, err := ioutil.ReadFile("test.json") if err != nil { log.Fatal(err) } err = json.Unmarshal(file, &data) if err != nil { log.Fatal(err) } fmt.Println(data) }
当您使用有效的 JSON 文件运行此代码时,它将成功将数据解析为所需的结构,从而使您能够访问数组中的键值对。
以上是如何将 JSON 映射数组解析为 Go 结构?的详细内容。更多信息请关注PHP中文网其他相关文章!