返回顶部
首页 > 资讯 > 精选 >从 Go 结构动态添加元素到 JSON
  • 699
分享到

从 Go 结构动态添加元素到 JSON

2024-02-06 10:02:40 699人浏览 独家记忆
摘要

问题内容 我想要得到的输出格式为: {"data": [ [ 0, [ "brendan", "fraser" ] ] , [ 1, [ "keanu", "reeves" ] ] ]

问题内容

我想要得到的输出格式为:

{"data": [ [ 0, [ "brendan", "fraser" ] ] , [ 1, [ "keanu", "reeves" ] ] ] }

为此,我定义了以下结构:

type actors struct {
    data [][]interface{} `JSON:"data"`
    }

各个值 brendanfraserkeanureeves 来自另一个以 rec.records[0].value 格式访问的数据结构

即:

rec.records[0].value 将对应于 brendan

rec.records[1].value 将对应 fraser 等等。

要为这个结构赋值,我正在做:

numberofactcnt := 0
numberofcolparsed := 0
numberofcolumns := 3

var act actors
var res []actors

    for i := 0; i < 2; i++ {
        numberofactcnt = numberofactcnt + numberofcolparsed
        for j := 0; j < 1; j++ {
            act = actors{[][]interface{}{{i, []string{rec.records[numberofactcnt].value, rec.records[numberofactcnt+1].value}}}}
            re, _ := json.marshal(act)
            fmt.println(string(re))
            numberofcolparsed = numberofcolumns - 1
        }
    }

这给了我输出:

{"data":[[0,["brendan","fraser"]]]}
{"data":[[1,["keanu","reeves"]]]}

如何获得该格式的输出? :

{"data": [ [ 0, [ "Brendan", "Fraser" ] ] , [ 1, [ "Keanu", "Reeves" ] ] ] }

我认为我的结构定义正确,但是如何将值附加到同一个 json?


正确答案


首先,循环所有记录并使用 append 将它们存储在 data [][]any 切片中,然后在循环之后,编组结果。

numberOfActCnt := 0
numberOfColParsed := 0
numberOfColumns := 3

var res struct { Data [][]any `json:"data"` }
for i := 0; i < 2; i++ {
    numberOfActCnt = numberOfActCnt + numberOfColParsed
    for j := 0; j < 1; j++ {
        res.Data = append(res.Data, []any{i, []string{rec.records[numberOfActCnt].value, rec.records[numberOfActCnt+1].value}})
        numberOfColParsed = numberOfColumns - 1
    }
}
re, err := json.Marshal(res)
if err != nil {
    panic(err)
}
fmt.Println(string(re))

注意:anyGo1 以来 interface{} 的别名.18,如果您使用的是旧版本的 go,那么您需要继续使用 interface{}

以上就是从 Go 结构动态添加元素到 JSON的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 从 Go 结构动态添加元素到 JSON

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

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

猜你喜欢
  • 从 Go 结构动态添加元素到 JSON
    问题内容 我想要得到的输出格式为: {"data": [ [ 0, [ "brendan", "fraser" ] ] , [ 1, [ "keanu", "reeves" ] ] ]...
    99+
    2024-02-06
  • 将元素附加到结构体切片
    php小编柚子在这里向大家介绍一种酷炫的技巧——将元素附加到结构体切片。结构体切片是一种在Golang中使用的数据结构,它可以存储不同类型的元素,并且具有动态扩展的能力。通过将元素附加...
    99+
    2024-02-09
  • Jquery中怎么动态添加元素并添加点击事件
    本文小编为大家详细介绍“Jquery中怎么动态添加元素并添加点击事件”,内容详细,步骤清晰,细节处理妥当,希望这篇“Jquery中怎么动态添加元素并添加点击事件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。给动态...
    99+
    2023-06-17
  • go结构体动态添加字段的方法是什么
    在Go语言中,结构体是一种固定字段的数据类型,无法动态添加字段。这是因为Go语言是静态类型语言,所有的变量和字段必须在编译时确定。如...
    99+
    2023-10-10
    go
  • 使用jQuery怎么向列表动态添加新元素
    今天就跟大家聊聊有关使用jQuery怎么向列表动态添加新元素,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实现代码如下:<!DOCTYPE&n...
    99+
    2024-04-02
  • c#数组动态添加元素的方法是什么
    在C#中,数组的大小是固定的,无法动态添加元素。如果需要动态添加元素,可以使用List类。List类是一个泛型集合类,可以根据需要动...
    99+
    2023-09-26
    c#
  • c++ vector 添加结构体元素,检测结果坐标的几个写法
    1、用向量vector ,添加的时候判断,相同名字的元素,置信度最大的框进行保存,如果有了就替换相关值,或者全部push 后遍历一遍删除相同的框子中,置信度最低的那个框 // 检测 //struct ...
    99+
    2023-10-11
    c++ 开发语言
  • vue动态添加/删除dom元素节点的操作代码
    目录vue 动态添加/删除dom元素vue中删除dom元素节点vue 动态添加/删除dom元素 需要在点击添加时,增加一行key/value的输入框;点击垃圾桶图标时,删除对应行 效...
    99+
    2022-12-08
    vue删除dom元素 vue添加dom元素 vue dom元素节点
  • vue动态添加元素点击事件不起作用怎么办
    在Vue中,很多时候我们需要动态地添加元素到页面上。然而,有时候我们会发现这些动态添加的元素的点击事件不起作用,这是为什么呢?本文将为您介绍原因及解决方法。一、原因我们首先来了解一下为什么动态添加的元素的点击事件不起作用。这是因为Vue在页...
    99+
    2023-05-14
  • 如何解决layui动态添加元素click等事件触发不了的问题
    这篇文章主要介绍如何解决layui动态添加元素click等事件触发不了的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在页面加载完成时候 '.add_project...
    99+
    2024-04-02
  • 如何将映射添加到用于反序列化 json 配置的同一结构中?
    哈喽!大家好,很高兴又见面了,我是编程网的一名作者,今天由我给大家带来一篇《如何将映射添加到用于反序列化 json 配置的同一结构中?》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关...
    99+
    2024-04-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作