在Golang中,如何使用匿名数组来反序列化json数据呢?这是许多开发者常常遇到的问题。匿名数组可以方便地处理一些简单的数据结构,而无需定义具体的结构体。通过使用Golang的内置json包,我们可以轻松地实现这个功能。下面,php小编新一将为您详细介绍如何在Golang中使用匿名数组来反序列化json数据的方法。让我们一起来看看吧!
我从外部服务器接收此 json:
[["010117"、"070117"、"080117"]、["080117"、"140117"、"150117"]、["150117"、"210117"、"220117"]]
我需要解析它
package main import ( "encoding/json" "fmt" "io" "os" "runtime" ) type Range struct { From string To string Do string } type AllRanges struct { Ranges []Range } func main() { var ranges AllRanges j, err := os.ReadFile(file) if err != nil { panic("Can't read json file") } if json.Unmarshal(j, &v) != nil { panic("Error reading the json") } }
当我执行时,会抛出一个恐慌,表明读取 json 时出错
提前致谢!
这不是失败的代码。您发布的代码将无法编译,因为它试图解组为未声明的变量 v
。
假设v
应该是ranges
应该是
ranges
的类型为 allranges
,它是一个具有命名成员的结构体,ranges
因此,当尝试将 json 解组到此结构中时,解组器将期望找到:
{ "ranges": [ { "from": "..", "to": .., "do": ".." }, { etc } ] }
ranges
要解组由字符串数组组成的匿名数组的数据,您需要将 声明为字符串数组数组:
var ranges [][]string ... if json.Unmarshal(j, &ranges) != nil { panic("Error reading the json") }
这个playground[][]string
演示了如何成功将示例数据解组到
以上是如何在 Golang 中用匿名数组反序列化 json?的详细内容。更多信息请关注PHP中文网其他相关文章!