广告
返回顶部
首页 > 资讯 > 后端开发 > GO >如何在Go中迭代mapinterface{}来生成html表
  • 219
分享到

如何在Go中迭代mapinterface{}来生成html表

2024-04-05 00:04:07 219人浏览 薄情痞子
摘要

在golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《如何在Go中迭代mapinterface{

golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《如何在Go中迭代mapinterface{}来生成html表》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我尝试在 go 中使用 html/template 生成 html 内容。该数据实际上是来自不同 Mysql 表的 select 查询的输出。

我需要以下方面的帮助

  1. 能够生成 html,但无法拆分行。如何迭代 result := []map[string]interface{}{} (我使用接口,因为列数及其类型在执行之前未知)以表格格式呈现数据?
  2. 列和行不匹配

注意:目前演示链接中的 result 包含 2 个地图,应将其视为动态。它会根据目标表而变化。

这是演示链接,其中包含与我的用例相匹配的示例数据。 https://go.dev/play/p/utl_j1iryog

下面是输出 html,它将所有值添加为单行,但也与列不匹配。

<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>


正确答案


您可以执行以下操作:

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 中映射是无序的,因此循环 result[0] 来聚合列名将生成无序的 []string。这意味着多次查看 html 页面的用户将看到不一致的输出。如果您想避免这种情况,您可以选择使用包 sort 对列进行排序,也可以选择以某种方式保留 sql.Rows.Columns 的顺序。

到这里,我们也就讲完了《如何在Go中迭代mapinterface{}来生成html表》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注编程网公众号,带你了解更多关于的知识点!

您可能感兴趣的文档:

--结束END--

本文标题: 如何在Go中迭代mapinterface{}来生成html表

本文链接: https://www.lsjlt.com/news/596586.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Go中生成二维码?
    在现代社会中,二维码已经成为了人们生活中不可或缺的一部分。通过扫描二维码,我们可以获取到各种各样的信息,比如商品信息、网址链接、联系方式等等。在Go语言中,生成二维码变得非常简单,只需要使用一些简单的库就可以实现。本文将会介绍如何在Go中生...
    99+
    2023-09-11
    二维码 npm leetcode
  • 如何在Go中使用异步编程来生成二维码接口?
    随着互联网的普及,二维码的应用越来越广泛,很多开发者都需要在自己的项目中使用二维码。而在Go语言中,使用异步编程来生成二维码接口是一种非常高效的方法。本文将介绍如何在Go中使用异步编程来生成二维码接口,并提供相应的演示代码。 一、异步编程简...
    99+
    2023-10-22
    二维码 异步编程 接口
  • 如何在 Go 中使用 Spring 存储来生成和管理二维码?
    在当今的数字时代,二维码已经成为了一种非常常见的信息传递方式,它可以轻松地将数据编码为一张图片,从而方便地分享和传递信息。而在 Go 语言中,我们可以使用 Spring 存储来生成和管理二维码。本文将介绍如何使用 Spring 存储来生成...
    99+
    2023-10-27
    存储 二维码 spring
  • 如何在Django中使用Pyecharts生成图表
    如何在Django中使用Pyecharts生成图表?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1 因为pyecharts是支持python的一种可视化,但是想要将其放入网页中...
    99+
    2023-06-15
  • 如何在Bash和JavaScript中使用Go生成二维码?
    二维码已经成为了现代生活中不可或缺的一部分。二维码可以用于多种场景,如商业广告、支付、身份识别等。在本文中,我们将探讨如何使用Go在Bash和JavaScript中生成二维码。 什么是二维码? 二维码是一种可以储存数据的编码图形。二维码是由...
    99+
    2023-06-26
    bash javascript 二维码
  • 二维码:如何在Go语言中生成和解码?
    二维码是现代社会中常用的一种二维条码,它可以将大量的信息编码到一个小小的图像中,便于在移动设备上扫描和识别。在本文中,我们将学习如何使用Go语言生成和解码二维码。 生成二维码 在Go语言中,我们可以使用第三方库github.com/skip...
    99+
    2023-09-08
    numpy apache 二维码
  • Golang迭代如何在Go中循环数据结构使用详解
    目录引言如何在Go中循环字符串如何在Go中循环map结构如何在Go中循环Struct结论引言 数组是存储类似类型数据的强大数据结构。您可以通过索引识别和访问其中的元素。 在Golan...
    99+
    2022-11-11
  • 二维码生成器:如何在Go语言中实现实时生成JavaScript二维码?
    二维码已经成为现代生活中不可或缺的一部分,它们被用于广告、宣传、票据、付款等各种场景。二维码的生成和解码已经得到了广泛的支持,因此,越来越多的人开始使用二维码来代替传统的条形码。 在本文中,我们将介绍如何在Go语言中实现实时生成JavaS...
    99+
    2023-11-06
    实时 javascript 二维码
  • 如何在 Go 中使用 Spring 存储和生成二维码?
    在现代的应用程序开发中,使用二维码已经成为了一种非常流行的方式。它们可以用于多种用途,例如支付码、身份验证、产品标签等等。在本文中,我们将介绍如何在 Go 中使用 Spring 存储和生成二维码。 安装依赖 在开始之前,我们需要安装一些...
    99+
    2023-10-27
    存储 二维码 spring
  • 如何在Go语言中使用Windows API生成二维码?
    在Go语言中使用Windows API生成二维码可以帮助开发者在Windows平台下快速生成高质量的二维码。本文将介绍如何使用Go语言结合Windows API生成二维码。 一、安装必要的库 在使用Windows API生成二维码之前,我们...
    99+
    2023-09-14
    二维码 windows 函数
  • 如何在Go中使用npm包并发生成二维码?
    Go是一种强类型的编程语言,它已经成为了许多开发人员的首选。Go的并发特性让它成为一个非常有用的工具,尤其是在需要高并发处理的项目中。而npm是一个非常流行的包管理器,它可以帮助我们快速地获取并使用其他开发者开发的包。在本文中,我们将介绍如...
    99+
    2023-09-01
    二维码 npm 并发
  • 如何在Go中使用NPM包生成优质的二维码?
    二维码在现代社会中已经得到了广泛的应用,比如支付宝、微信等移动支付平台中就广泛使用了二维码技术。在Go语言中,我们可以通过使用NPM包来生成优质的二维码。本文将介绍如何在Go中使用NPM包生成优质的二维码。 步骤一:安装Node.js和N...
    99+
    2023-06-03
    二维码 面试 npm
  • 如何在Go中使用二维码生成器打包响应?
    在当今数字化时代,二维码已经成为一种广泛使用的技术。它可以用于多种场景,例如商业促销、门票验证、快速支付等。在本文中,我们将介绍如何在Go中使用二维码生成器打包响应。 第一步:安装QR码生成器 首先,我们需要安装一个Go语言的二维码生成器...
    99+
    2023-09-27
    二维码 打包 响应
  • Go语言编程:如何在异步接口中生成二维码?
    在现代互联网应用程序中,二维码已经成为了必不可少的一部分。它们被用于各种场合,例如扫码登录、扫码支付等等。因此,对于开发人员来说,生成二维码已经成为了一项必备技能。在本文中,我们将介绍如何在异步接口中生成二维码。 在Go语言中,有很多库可...
    99+
    2023-10-22
    二维码 异步编程 接口
  • 如何在Spring框架中使用Go语言生成实时二维码?
    Spring框架是一款非常流行的Java开发框架,而Go语言则是一门高性能的编程语言。本文将介绍如何在Spring框架中使用Go语言生成实时二维码。 一、为什么选择Go语言生成实时二维码? 在生成实时二维码的过程中,我们需要考虑性能和可靠性...
    99+
    2023-10-26
    二维码 实时 spring
  • 如何使用Go编写Bash脚本并在Django中生成二维码?
    Django是一个非常流行的Web框架,而Bash脚本则是Linux和Unix系统中的一种常用的脚本语言。Go是一种非常强大的编程语言,具有高效和快速开发的特点。本文将介绍如何使用Go编写Bash脚本,并在Django中生成二维码。 一、...
    99+
    2023-07-23
    bash django 二维码
  • 如何在ASP中使用IDE来快速生成二维码?
    二维码是一种在移动互联网时代中广泛使用的一种信息传递方式。二维码可以存储大量的信息,同时可以被扫描器快速解码,因此被广泛应用于各行各业。在ASP.NET中使用IDE来快速生成二维码是一种非常方便的方式,本文将介绍如何使用Visual St...
    99+
    2023-06-16
    二维码 容器 ide
  • 如何在 Go 语言中实现一个二维码生成器,并将生成日志保存到文件?
    在本文中,我们将探讨如何使用 Go 语言实现一个二维码生成器,并将生成日志保存到文件。二维码是一种二维条码,它可以存储大量信息,并且可以在很小的空间内进行存储。在日常生活中,二维码可以用于各种场合,如支付、门票、商业广告等。 Go 语言提供...
    99+
    2023-07-26
    二维码 日志 打包
  • 如何在Go中使用对象来提高代码质量?
    在Go语言中,对象是一种非常重要的编程概念。通过使用对象,我们可以提高代码的可读性和可维护性,同时也可以减少代码的重复性和错误。本文将介绍如何在Go中使用对象来提高代码质量。 一、什么是对象? 在面向对象编程中,对象是一个实例,包含数据和方...
    99+
    2023-11-10
    对象 bash npm
  • 你知道如何在Go语言中使用函数生成二维码吗?
    Go语言是近年来备受关注的一门编程语言,它简洁、高效、安全,而且在并发编程方面表现出色,受到了越来越多开发者的喜爱。在Go语言中,我们可以轻松地使用函数生成二维码,下面我将介绍一下如何实现。 首先,我们需要下载并安装一个开源的二维码生成库—...
    99+
    2023-09-14
    二维码 windows 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作