Json 无法将对象解组为[]uint8类型的Go值

Json 无法将对象解组为[]uint8类型的Go值,json,go,unmarshalling,Json,Go,Unmarshalling,我是新来的。我有以下代码: 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 {

我是新来的。我有以下代码:

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)

}
获取错误:

无法“将对象解组为[]uint8类型的Go值”


我如何解决这个问题?

您有两个JSON输入,并且您正在尝试将一个解组到另一个。那没有任何意义

使用类型(struct)对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)

}
输出(在上尝试):


您有2个JSON输入,并且您正在尝试将一个解组到另一个。那没有任何意义

使用类型(struct)对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)

}
输出(在上尝试):


我想你是想做这样的事:

包干管

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对象拆封为另一个对象。

我想您的意思是这样做的:

包干管

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对象解组为另一个对象。

您到底想做什么?你的预期产出是什么?你到底想做什么?你的预期产量是多少?