dongshai2022
2017-03-24 18:05
采纳率: 100%
浏览 2.8k
已采纳

在Golang中将interface {}转换为struct

我是Go的新手,正努力了解所有不同的类型以及如何使用它们。 我有以下接口(最初在json文件中):
[map[item:electricity transform:{fuelType}] map[transform:{fuelType} item:gas]]

并且我有以下的结构:

type urlTransform struct {
        item string
        transform string
}

我不知道如何将接口数据放入结构中。 我敢肯定这确实很愚蠢,但是我会一直努力。 有任何的帮助都将不胜感激。

图片转代码服务由CSDN问答提供 功能建议

我是Go语言的新手,我试图让我了解所有不同的类型以及如何使用它们。 我有一个与以下接口(最初位于json文件中):

  [map [item:electricity transform:{fuelType}] map [transform:{fuelType}  item:gas]] 
   
 
 

,我有以下结构

  type urlTransform结构{
项目字符串 
转换字符串
} 
   
 
 

我不知道如何将接口数据放入结构中; 我敢肯定这真的很愚蠢,但是我整天都在努力。 任何帮助将不胜感激。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongshou9878 2017-03-24 18:12
    已采纳

    Decode the JSON directly to types you want instead of decoding to an interface{}.

    Declare types that match the structure of your JSON data. Use structs for JSON objects and slices for JSON arrays:

    type transform struct {
        // not enough information in question to fill this in.
    }
    
    type urlTransform struct {
        Item string
        Transform transform
    }
    
    var transforms []urlTransform
    

    The field names must be exported (start with uppercase letter).

    Unmarshal the JSON to the declared value:

    err := json.Unmarshal(data, &transforms)
    

    or

    err := json.NewDecoder(reader).Decode(&transforms)
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题