加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Index中的struct的Golang Template属性

发布时间:2020-12-16 09:25:24 所属栏目:大数据 来源:网络整理
导读:我有一个使用golang模板的json字符串.有没有办法打印{{index .Apps 1}}的Name属性?下面是我正在运行的代码.在第31行,我试图只打印Apps [0]的Name属性. http://play.golang.org/p/4RNevdqxP1 package mainimport ( "encoding/json" "os" "text/template")typ
我有一个使用golang模板的json字符串.有没有办法打印{{index .Apps 1}}的Name属性?下面是我正在运行的代码.在第31行,我试图只打印Apps [0]的Name属性.

http://play.golang.org/p/4RNevdqxP1

package main

import (
  "encoding/json"
  "os"
  "text/template"
)

type Message struct {
   Name    string
   Id      int
   Apps    []App
   Company Company
}
type App struct {
   Name   string `json:"name"`
   Device string `json:"device"`
}
type Company struct {
  UserId string
 }

func main() {
  msg := []byte(`{
  "Name":"Bob","Id":1,"apps":[{"name":"app1","device":"ios"},{"name":"app2","device":"android"},{"name":"app3","device":"ios"}],"company":
  {
    "userId":"{{.Name}}-{{.Id}}","app":["{{index .Apps 0}}","{{index .Apps 1}}"]
  }
}`)
var m Message
json.Unmarshal(msg,&m)
t := template.New("My template")
t,_ = t.Parse(string(msg))

t.Execute(os.Stdout,m)
}

解决方法

您可以将其包装在括号中:

{{(index .Apps 1).Name}}

Playground link

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读