Skip to content

Latest commit

 

History

History
35 lines (24 loc) · 1.42 KB

README.md

File metadata and controls

35 lines (24 loc) · 1.42 KB

bellows

Flatten and expand golang maps and structs

Features

There are some existing golang flatten/expand implementations, but they are targeted to specific use-cases, and none of them flatten Structs.

This Flatten will skip parsing a Map that does not have a String as the index.

This Flatten recursively passes values as their original Interface, so it is simpler than implementations that rely on passing reflect.Value.

Usage

// Expand a dot-separated flat map into a nested maps and slices
func Expand(flat map[string]interface{}) interface{}

// Flatten a nested map into a dot-separated flat map
func Flatten(value interface{}) map[string]interface{} {}

// Flatten a nested map into a dot-separated flat map, with a prefix
func FlattenPrefixed(value interface{}, prefix string) map[string]interface{} {}

// Flatten a nested map into an existing dot-separated flat map, with a prefix
func FlattenPrefixedToResult(value interface{}, prefix string, m map[string]interface{}) {}

Other golang flatten/expand implementations

(C) Copyright 2015 doublerebel. MIT Licensed.