golang golang解析嵌套的地图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang golang解析嵌套的地图相关的知识,希望对你有一定的参考价值。

package main

import (
	"fmt"
)

func main() {
	m1 := map[string]interface{}{
		"a": 1,
		"b": 2,
		"c": map[string]interface{}{
			"d": 3,
			"e": 4,	
		},
		"f": 5,
	}
	
	m2 := make(map[string]interface{})
	for k, v := range m1 {
		if mm, ok := v.(map[string]interface{}); ok {
			for kx, vx := range mm {
				m2[k+"."+kx] = vx
			}
		} else {
			m2[k] = v
		}
	}
	for k, v := range m2 {
		fmt.Println(k, v)
	}
	fmt.Println("Hello, playground")
}

golang golang flatten嵌套地图

type Data map[string]interface{}
func main() {
	var data Data
	data = Data{
		"A": 1,
		"B": 2,
		"C": Data{
			"D": 3,
			"E": 4,
			"G": Data{
				"H": 123,
				"Q": 456,
			},
		},
		"F":    5,
		"DATE": time.Now(),
	}

	newMap1 := flattenMap(data)
	log.Printf("%v\n", newMap1)
}

func flattenMap(m Data) Data {
	d := make(Data)
	for k, v := range m {
		v1, ok := v.(Data)
		if ok {
			flatMap(d, v1, k)
		} else {
			d[k] = v
		}
	}
	return d
}

func flatMap(d, m Data, oldKey string) {
	for k, v := range m {
		v1, ok := v.(Data)
		if ok {
			flatMap(d, v1, oldKey+"."+k)
		} else {
			d[oldKey+"."+k] = v
		}
	}
}

以上是关于golang golang解析嵌套的地图的主要内容,如果未能解决你的问题,请参考以下文章

golang golang flatten嵌套地图

Golang 中的嵌套地图

如何让golang 把变量解析为json,并输出为文件。

在 Golang 中访问 map[string]interface 类型的嵌套映射

golang golang地图列表

golang golang在嵌套映射中查找值