dongping5230 2018-02-09 18:05
浏览 69
已采纳

将字节数组解组到接口,然后将该接口类型强制转换为struct不起作用?

I have been coding in golang for a while now. I have come across something I thought would work perfectly fine.

When I JSON Marshal a nested struct in golang I get the array of bytes, when I UnMarshal the same into an interface and convert the interface into the respective nested struct, it gives me a panic stating interface conversion: interface is map[string]interface but not the nested struct.

Please go through the link below.

https://play.golang.org/p/apdR4TKjee-

Can someone explain to me what is that I am missing?

  • 写回答

2条回答 默认 最新

  • dtf54486 2018-02-09 18:07
    关注

    When you unmarshall JSON into interface{}, it has no way to know what type you want it to use, so it defaults to map[string]interface{} as indicated in the documentation:

    To unmarshal JSON into an interface value, Unmarshal stores one of these in the interface value:

    ...

    map[string]interface{}, for JSON objects

    If you want to unmarshal to a specific type, pass an instance of that type to Unmarshal:

    var result sample 
    err = json.Unmarshal(data,&result)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流