golang 类型转换。结构体接口

我不习惯golang。


当我请求时,我得到了以下日志。


我想解析日志并将其存储为struct类型。


有人告诉我该怎么做吗?


提前致谢。


例如 :

type ResultStruct struct{

    id int

    guid string

    name string

}


for k, v := range data {

    fmt.Print(v.id) fmt.Print(v.guid) fmt.Print(v.name)

}

[日志]


数据:[地图[id:90001 guid:a name:test1] map[guid:b name:test2 id:90002] map[name:test3 id:90003 guid:c]]


[来源]


response := httpClient.Do(request)

var data interface{}

rawdata, err := ioutil.ReadAll(response.body)

json.Unmarshal(rawdata, &data)

fmt.Println("data :", data)


智慧大石
浏览 116回答 2
2回答

慕婉清6462132

这是 Go 新程序员的常见错误。由于语言设计,json.Unmarshal只能编组到导出字段中。只需将每个字段名称的第一个字母大写即可导出它们。您可以选择添加字段标签来告诉 json.Marshal 使用什么键名。仅当您要使用json.Marshal.type ResultStruct struct{    Id   int    `json:"id"`    Guid string `json:"guid"`    Name string `json:"name"`}报价encoding/json包:要将 JSON 解组为结构,Unmarshal 将传入的对象键与 Marshal 使用的键(结构字段名称或其标签)进行匹配,更喜欢精确匹配,但也接受不区分大小写的匹配。Unmarshal 只会设置结构的导出字段。

蓝山帝景

你得到一个数组,使用encoding/json包解组它。type ResultStruct struct {    id int      `json:"id"`    guid string `json:"guid"`    name string `json:"name"`}type Result struct {    Data []ResultStruct `json:"data"`}response := httpClient.Do(request)var data ResultdecErr := json.NewDecoder(response.body).Decode(&data)fmt.Println(decErr, data)这应该将数据解组为数组。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go