第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go中如何遍歷[]map[string]interface{}生成html表格

Go中如何遍歷[]map[string]interface{}生成html表格

Go
胡說叔叔 2023-01-03 17:25:32
html/template我正在嘗試使用in生成 HTML 內容Go。數據實際上是SELECT來自不同MySQL表的查詢的輸出。我需要以下方面的幫助能夠生成 HTML 但無法拆分行。如何迭代result := []map[string]interface{}{}(我使用接口,因為列數和它的類型在執(zhí)行之前是未知的)以表格格式呈現數據?列和行不匹配注意:目前result在 playground 鏈接中包含 2 張地圖,應將其視為動態(tài)地圖。它會根據目標表而改變。這是 playground 鏈接,其中包含與我的用例匹配的示例數據。 https://go.dev/play/p/UTL_j1iRyoG下面是輸出 HTML,它將所有值添加為單行,這也不與 Columns 匹配。<html>    <head>        <meta charset="UTF-8">        <title>My page</title>        <style>        table, th, td {          border: 1px solid black;        }        th, td {          padding: 10px;        }        </style>    </head>    <body>    <table>        <tr>        <th>Name</th><th>Colour</th>        </tr>        <tr>        <td>Red</td><td>Apple</td><td>Banana</td><td>Yellow</td>        </tr>    </table>    </body></html>
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

您可以執(zhí)行以下操作:


var cols []string

var rows [][]interface{}


for key, _ := range result[0] {

    cols = append(cols, key)

}


for _, res := range result {

    vals := make([]interface{}, len(cols))

    for i, col := range cols {

        vals[i] = res[col]

    }

    rows = append(rows, vals)

}

data := struct {

    Title   string

    Columns []string

    Rows    [][]interface{}

}{

    Title:   "My page",

    Columns: cols,

    Rows:    rows,

}

并且需要相應地修改 HTML:


<table>

    <tr>

    {{range .Columns}}<th>{{ . }}</th>{{else}}<div><strong>no rows</strong></div>{{end}}

    </tr>

    {{- range .Rows}}

    <tr>

    {{range .}}<td>{{ . }}</td>{{end}}

    </tr>

    {{- end}}

</table>

https://go.dev/play/p/MPJOMlfQ488


請注意,在 Go 中,映射是無序的,因此循環(huán)result[0]聚合列名將產生一個無序的[]string. 這意味著多次查看您的 HTML 頁面的用戶將看到不一致的輸出。如果這是您想避免的事情,您可以選擇使用 package 對列進行排序,或者您可以選擇以某種方式sort保留順序。sql.Rows.Columns


查看完整回答
反對 回復 2023-01-03
  • 1 回答
  • 0 關注
  • 328 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號