无法将对象解组为 []uint8 类型的 Go 值
Cannot unmarshal object into Go value of type []uint8
我是 Go 的新手。我有以下代码:
package main
import (
"encoding/json"
"fmt"
)
func main() {
byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
dat := []byte(`{"num":7.13,"strs":["c","d"]}`)
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
fmt.Println(dat)
}
获取错误:
cannot "unmarshal object into Go value of type []uint8".
请问我该如何解决这个问题?
您有 2 个 JSON 输入,并且您正在尝试将其中一个解组为另一个。这没有任何意义。
使用类型(结构)为您的 JSON 输入(对象)建模,然后将其解组。例如:
type Obj struct {
Num float64 `json:"num"`
Strs []string `json:"strs"`
}
func main() {
byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
var obj Obj
if err := json.Unmarshal(byt, &obj); err != nil {
panic(err)
}
fmt.Println(obj)
}
输出(在 Go Playground 上尝试):
{6.13 [a b]}
我想你是想做这样的事情:
主要包
import (
"encoding/json"
"fmt"
)
func main() {
var dat interface{}
byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
fmt.Println(dat)
}
您试图做的事情毫无意义,因为您正试图将两个 JSON 对象解组为另一个对象。
我是 Go 的新手。我有以下代码:
package main
import (
"encoding/json"
"fmt"
)
func main() {
byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
dat := []byte(`{"num":7.13,"strs":["c","d"]}`)
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
fmt.Println(dat)
}
获取错误:
cannot "unmarshal object into Go value of type []uint8".
请问我该如何解决这个问题?
您有 2 个 JSON 输入,并且您正在尝试将其中一个解组为另一个。这没有任何意义。
使用类型(结构)为您的 JSON 输入(对象)建模,然后将其解组。例如:
type Obj struct {
Num float64 `json:"num"`
Strs []string `json:"strs"`
}
func main() {
byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
var obj Obj
if err := json.Unmarshal(byt, &obj); err != nil {
panic(err)
}
fmt.Println(obj)
}
输出(在 Go Playground 上尝试):
{6.13 [a b]}
我想你是想做这样的事情:
主要包
import (
"encoding/json"
"fmt"
)
func main() {
var dat interface{}
byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
fmt.Println(dat)
}
您试图做的事情毫无意义,因为您正试图将两个 JSON 对象解组为另一个对象。