golang 多个struct 转换融合为一个json,平级融合或者多级融合

这篇具有很好参考价值的文章主要介绍了golang 多个struct 转换融合为一个json,平级融合或者多级融合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 平级融合,就是下面例子,虽然A在B里面,但是A在struct B里面没有名字,输出结果就是A 和B在同一级的json下面。

package main

import (
	"encoding/json"
	"fmt"
)

type A struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	URL         string `json:"url"`
}

type B struct {
	Name string `json:"name"`
	*A
}

func main() {
	a := A{Name: "test", Description: "desc", URL: "https://example.com"}
	b := B{Name: "new name"}

	b.A = &a

	data, _ := json.Marshal(b)

	fmt.Println(string(data))
}

输出:{"name":"new name","description":"desc","url":"https://example.com"}

2. 两级json,

package main

import (
	"encoding/json"
	"fmt"
)

type A struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	URL         string `json:"url"`
}

type B struct {
	Name string `json:"name"`
	Adata *A
}

func main() {
	a := A{Name: "test", Description: "desc", URL: "https://example.com"}
	b := B{Name: "new name"}

	b.Adata = &a

	data, _ := json.Marshal(b)

	fmt.Println(string(data))
}

输出:{"name":"new name","Adata":{"name":"test","description":"desc","url":"https://example.com"}}文章来源地址https://www.toymoban.com/news/detail-701383.html

到了这里,关于golang 多个struct 转换融合为一个json,平级融合或者多级融合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JSON转换成一个map

    这时发现json转换成对象没有实体类,只能转换成map了,会自动给你封装成键值对 但是在实际的业务中可能是嵌套多层,所以需要多次转换,这边写的通俗点,正常不需要写这么多对象去接收返回值,直接放在转换的括号里 Map map = JSONUtil.parseObj(result); //这是将一个JSOn转换成正

    2024年02月12日
    浏览(38)
  • Golang空结构体struct{}的作用?

    在平时做项目得时候,经常会看到很多包里面定义了结构体。 e.g. 在 context 包里面 Context 接口中的 Done() 方法, Done() 返回一个是以空结构体定义数据的通道 chan struct{} ,那这里他是有什么特殊用意吗?我们接下来分析 struct{} 的作用。 struct{} 空结构是没有字段的结构类型。下

    2024年02月11日
    浏览(42)
  • golang 结构体struct转map实践

      1、反射 type sign struct {     Name string `json:\\\"name,omitempty\\\"`     Age  int    `json:\\\"age,omitempty\\\"` }   var s sign s.Name = \\\"csdn\\\" s.Age = 18     //方式1 反射 var data = make(map[string]interface{})   t := reflect.TypeOf(s) v := reflect.ValueOf(s) for i := 0; i t.NumField(); i++ {     data[t.Field(i).Name] = v.Field(i).Interfa

    2024年02月12日
    浏览(41)
  • Golang空结构体struct{}的作用是什么?

    在Go语言中,空结构体 struct{}是一种特殊的数据类型,它不占用任何内存空间。空结构体没有任何字段,也没有任何方法。尽管它看起来没有实际的用途,但在编程中确实有一些常见的应用场景。 以下是空结构体 struct{}的几个常见用途: 空结构体可以用作占位符,表示某个位

    2024年02月14日
    浏览(33)
  • Golang struct 结构体注意事项和使用细节

     一个int类型刚好8个字节。 可以看到结构体的字段在内存当中是连续分布的,通过地址的加减来找到对应的数据。 可以看到指针的地址也是连续的,r有两个*point类型,这个两个*Point类型的本身地址也是连续的,但是他们指向的地址不一定是连续。 结构体是用户单独定义的类

    2024年02月11日
    浏览(51)
  • 【Golang】Golang进阶系列教程--为什么 Go 语言 struct 要使用 tags

    在 Go 语言中,struct 是一种常见的数据类型,它可以用来表示复杂的数据结构。在 struct 中,我们可以定义多个字段,每个字段可以有不同的类型和名称。 除了这些基本信息之外,Go 还提供了 struct tags,它可以用来指定 struct 中每个字段的元信息。 在本文中,我们将探讨为什

    2024年02月15日
    浏览(74)
  • Golang struct 结构体指针类型 / 结构体值类型

    结构体变量之间的赋值是值拷贝。 当需要通过变量去修改另外一个结构体内容的时候,可以通过传递地址的方式来达到这个效果。 这样使用肯定是不对的,因为.的运算优先级要高,所以先会去执行p2.age,之后又取地址,所以这个就不行。 在代码执行的时候先执行.的操作,

    2024年02月13日
    浏览(42)
  • nlohmann json:实现map和struct的互转

    可以借助json实现map和struct的互转:

    2024年02月11日
    浏览(43)
  • go struct结构体之间的转换

    原文链接:https://www.zhoubotong.site/post/94.html 说下背景吧,大家在开发中可能在不同的目录(package)下定义了相同的struct(属性参数完全一样如名字、个数和类型),在方法调用传参数的时候,可能是用到了其中某一个struct的引用。 那么这里就牵扯到相互间的转换:直接上demo: 显然

    2023年04月17日
    浏览(47)
  • 在前后端分离的项目中,Springboot vue,前端把json传到后端,后端用一个类接收,json中的数据是怎么转换类型的

    在前后端分离的项目中,前端通常会将数据以 JSON 格式传输给后端,后端需要将接收到的 JSON 数据转换为对应的类型。这个过程可以通过后端框架和库来自动完成。 在Spring Boot中,后端可以使用相关的库来实现JSON数据的转换。常见的库包括Jackson、Gson和FastJson等。这些库提供

    2024年02月13日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包