在 Go 中,如何解组包含结构数组的字符串
In Go, how to unmarshal a string containing an array of a struct
我从 API 收到的属性之一是包含结构数组的字符串,其中结构的属性被转义。
我希望数据(输出对象)是一个简单的 MyStruct 数组,如下所示:
[{"f":"f-val"}]
但是,我得到的输出是一个空数组 [].
有人可以帮忙吗?我将不胜感激。
package main
import "fmt"
import "encoding/json"
type MyStruct struct {
F string
}
func main() {
stringResponse := `"[{\"f\":\"f-val\"}]"`
var data []MyStruct
json.Unmarshal([]byte(string(stringResponse)), &data)
fmt.Print(data)
}
这里是正确的例子:
package main
import (
"encoding/json"
"strconv"
)
func main() {
s, e := strconv.Unquote(`"[{\"f\":\"f-val\"}]"`)
if e != nil {
panic(e)
}
var (
b = []byte(s)
m []struct{F string}
)
json.Unmarshal(b, &m)
println(m[0].F == "f-val")
}
我从 API 收到的属性之一是包含结构数组的字符串,其中结构的属性被转义。
我希望数据(输出对象)是一个简单的 MyStruct 数组,如下所示:
[{"f":"f-val"}]
但是,我得到的输出是一个空数组 [].
有人可以帮忙吗?我将不胜感激。
package main
import "fmt"
import "encoding/json"
type MyStruct struct {
F string
}
func main() {
stringResponse := `"[{\"f\":\"f-val\"}]"`
var data []MyStruct
json.Unmarshal([]byte(string(stringResponse)), &data)
fmt.Print(data)
}
这里是正确的例子:
package main
import (
"encoding/json"
"strconv"
)
func main() {
s, e := strconv.Unquote(`"[{\"f\":\"f-val\"}]"`)
if e != nil {
panic(e)
}
var (
b = []byte(s)
m []struct{F string}
)
json.Unmarshal(b, &m)
println(m[0].F == "f-val")
}