doubo9799 2014-12-28 13:13
浏览 121
已采纳

将元数据嵌套到JSON中

How do I marshal a nested struct into JSON? I know how to marshal the struct without any nested structs. However when I try to make the JSON response look like this:

{"genre": {"country": "taylor swift", "rock": "aimee"}}

I run into problems.

My code looks like this:

Go:

type Music struct {
  Genre struct { 
    Country string
    Rock string
  }
}

resp := Music{
  Genre: { // error on this line.
    Country: "Taylor Swift",
    Rock: "Aimee",
  },
}

js, _ := json.Marshal(resp)
w.Write(js)

However, I get the error

Missing type in composite literal

How do I resolve this?

  • 写回答

3条回答 默认 最新

  • dreinuqm992401 2014-12-28 13:30
    关注

    Here's the composite literal for your type:

    resp := Music{
        Genre: struct {
            Country string
            Rock    string
        }{ 
            Country: "Taylor Swift",
            Rock:    "Aimee",
        },
    }
    

    playground example

    You need to repeat the anonymous type in the literal. To avoid the repetition, I recommend defining a type for Genre. Also, use field tags to specify lowercase key names in the output.

    type Genre struct {
      Country string `json:"country"`
      Rock    string `json:"rock"`
    }
    
    type Music struct {
      Genre Genre `json:"genre"`
    }
    
    resp := Music{
        Genre{
            Country: "Taylor Swift",
            Rock:    "Aimee",
        },
    }
    

    playground example

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行