【发布时间】:2022-03-06 05:15:55
【问题描述】:
我需要一些关于解组的帮助。我有这个示例代码:
package main
import (
"encoding/json"
"fmt"
)
type Obj struct {
Id string `json:"id"`
Data []byte `json:"data"`
}
func main() {
byt := []byte(`{"id":"someID","data":["str1","str2"]}`)
var obj Obj
if err := json.Unmarshal(byt, &obj); err != nil {
panic(err)
}
fmt.Println(obj)
}
我在这里尝试做的 - 将字节转换为结构,其中一个字段的类型是 []byte。我得到的错误:
panic: json: cannot unmarshal string into Go struct field Obj.data 输入 uint8
这可能是因为解析器已经看到“数据”字段已经是一个切片并试图将“str1”表示为一些 char 字节码(类型 uint8?)。
如何将整个 data 值存储为一个字节数组?因为我想稍后将值解组到字符串切片。我没有将字符串切片包含在 struct 中,因为这种类型可以更改(字符串数组、int、字符串等),我希望这是通用的。
【问题讨论】:
-
您正在呈现两个字符串并希望它们适合单个字节片?
-
我希望整个 ["str1","str2"] 成为 []byte
-
你的意思是你想让整个字符串 '["str1","str2"]' 成为一个 []byte?
-
正确,与内容无关。它只是在这种特定情况下看起来像一个数组
标签: go