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

  1. 平级融合,就是下面例子,虽然A在B里面,但是A在struct B里面没有名字,输出结果就是A 和B在同一级的json下面。
Go 复制代码
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"}

  1. 两级json,
Go 复制代码
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"}}

相关推荐
执笔画情ora8 分钟前
oracle数据库优化-表碎片优化性能。
数据库·oracle
JCGKS18 分钟前
海量文档单词计数算法方案分析
golang·数据结构与算法·海量数据·搜索引起·倒排查找
givemeacar20 分钟前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
skiy22 分钟前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
IvorySQL26 分钟前
PostgreSQL 技术日报 (3月24日)|当 MVCC 成本被重新审视
数据库·postgresql·开源
2401_8955213434 分钟前
PostgreSQL_安装部署
数据库·postgresql
Hvitur1 小时前
软考架构师【第六章】数据库设计基础知识
数据库·oracle
养生技术人1 小时前
Oracle OCP认证考试题目详解082系列第5题
运维·数据库·sql·oracle·开闭原则
2401_879693871 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
yunyun321231 小时前
机器学习模型部署:将模型转化为Web API
jvm·数据库·python