SkillAgentSearch skills...

Flatmap

flatmap transform nested map to flatten map

Install / Use

/learn @astaxie/Flatmap
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

flatmap

flatmap transform nested map to flatten map

How to use?

package main

import (
    "fmt"
	"log"
	"sort"
	"encoding/json"

	"github.com/astaxie/flatmap"
)

var data =`
{
	"id": 1296269,
	"owner": {
		"login": "octocat",
		"id": 1,
		"avatar_url": "https://github.com/images/error/octocat_happy.gif",
		"gravatar_id": "somehexcode",
		"url": "https://api.github.com/users/octocat",
		"html_url": "https://github.com/octocat",
		"followers_url": "https://api.github.com/users/octocat/followers",
		"following_url": "https://api.github.com/users/octocat/following{/other_user}",
		"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
		"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
		"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
		"organizations_url": "https://api.github.com/users/octocat/orgs",
		"repos_url": "https://api.github.com/users/octocat/repos",
		"events_url": "https://api.github.com/users/octocat/events{/privacy}",
		"received_events_url": "https://api.github.com/users/octocat/received_events",
		"type": "User",
		"site_admin": false
	},
	"name": "Hello-World",
	"full_name": "octocat/Hello-World",
	"description": "This your first repo!",
	"private": false,
	"fork": false,
	"url": "https://api.github.com/repos/octocat/Hello-World",
	"html_url": "https://github.com/octocat/Hello-World",
	"clone_url": "https://github.com/octocat/Hello-World.git",
	"git_url": "git://github.com/octocat/Hello-World.git",
	"ssh_url": "git@github.com:octocat/Hello-World.git",
	"svn_url": "https://svn.github.com/octocat/Hello-World",
	"mirror_url": "git://git.example.com/octocat/Hello-World",
	"homepage": "https://github.com",
	"language": null,
	"forks_count": 9,
	"stargazers_count": 80,
	"watchers_count": 80,
	"size": 108,
	"default_branch": "master",
	"open_issues_count": 0,
	"has_issues": true,
	"has_wiki": true,
	"has_downloads": true,
	"pushed_at": "2011-01-26T19:06:43Z",
	"created_at": "2011-01-26T19:01:12Z",
	"updated_at": "2011-01-26T19:14:43Z",
	"permissions": {
		"admin": false,
		"push": false,
		"pull": true
	},
	"subscribers_count": 42,
	"organization": {
		"login": "octocat",
		"id": 1,
		"avatar_url": "https://github.com/images/error/octocat_happy.gif",
		"gravatar_id": "somehexcode",
		"url": "https://api.github.com/users/octocat",
		"html_url": "https://github.com/octocat",
		"followers_url": "https://api.github.com/users/octocat/followers",
		"following_url": "https://api.github.com/users/octocat/following{/other_user}",
		"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
		"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
		"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
		"organizations_url": "https://api.github.com/users/octocat/orgs",
		"repos_url": "https://api.github.com/users/octocat/repos",
		"events_url": "https://api.github.com/users/octocat/events{/privacy}",
		"received_events_url": "https://api.github.com/users/octocat/received_events",
		"type": "Organization",
		"site_admin": false
	},
	"parent": {
		"id": 1296269,
		"owner": {
			"login": "octocat",
			"id": 1,
			"avatar_url": "https://github.com/images/error/octocat_happy.gif",
			"gravatar_id": "somehexcode",
			"url": "https://api.github.com/users/octocat",
			"html_url": "https://github.com/octocat",
			"followers_url": "https://api.github.com/users/octocat/followers",
			"following_url": "https://api.github.com/users/octocat/following{/other_user}",
			"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
			"organizations_url": "https://api.github.com/users/octocat/orgs",
			"repos_url": "https://api.github.com/users/octocat/repos",
			"events_url": "https://api.github.com/users/octocat/events{/privacy}",
			"received_events_url": "https://api.github.com/users/octocat/received_events",
			"type": "User",
			"site_admin": false
		},
		"name": "Hello-World",
		"full_name": "octocat/Hello-World",
		"description": "This your first repo!",
		"private": false,
		"fork": true,
		"url": "https://api.github.com/repos/octocat/Hello-World",
		"html_url": "https://github.com/octocat/Hello-World",
		"clone_url": "https://github.com/octocat/Hello-World.git",
		"git_url": "git://github.com/octocat/Hello-World.git",
		"ssh_url": "git@github.com:octocat/Hello-World.git",
		"svn_url": "https://svn.github.com/octocat/Hello-World",
		"mirror_url": "git://git.example.com/octocat/Hello-World",
		"homepage": "https://github.com",
		"language": null,
		"forks_count": 9,
		"stargazers_count": 80,
		"watchers_count": 80,
		"size": 108,
		"default_branch": "master",
		"open_issues_count": 0,
		"has_issues": true,
		"has_wiki": true,
		"has_downloads": true,
		"pushed_at": "2011-01-26T19:06:43Z",
		"created_at": "2011-01-26T19:01:12Z",
		"updated_at": "2011-01-26T19:14:43Z",
		"permissions": {
			"admin": false,
			"push": false,
			"pull": true
		}
	},
	"source": {
		"id": 1296269,
		"owner": {
			"login": "octocat",
			"id": 1,
			"avatar_url": "https://github.com/images/error/octocat_happy.gif",
			"gravatar_id": "somehexcode",
			"url": "https://api.github.com/users/octocat",
			"html_url": "https://github.com/octocat",
			"followers_url": "https://api.github.com/users/octocat/followers",
			"following_url": "https://api.github.com/users/octocat/following{/other_user}",
			"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
			"organizations_url": "https://api.github.com/users/octocat/orgs",
			"repos_url": "https://api.github.com/users/octocat/repos",
			"events_url": "https://api.github.com/users/octocat/events{/privacy}",
			"received_events_url": "https://api.github.com/users/octocat/received_events",
			"type": "User",
			"site_admin": false
		},
		"name": "Hello-World",
		"full_name": "octocat/Hello-World",
		"description": "This your first repo!",
		"private": false,
		"fork": true,
		"url": "https://api.github.com/repos/octocat/Hello-World",
		"html_url": "https://github.com/octocat/Hello-World",
		"clone_url": "https://github.com/octocat/Hello-World.git",
		"git_url": "git://github.com/octocat/Hello-World.git",
		"ssh_url": "git@github.com:octocat/Hello-World.git",
		"svn_url": "https://svn.github.com/octocat/Hello-World",
		"mirror_url": "git://git.example.com/octocat/Hello-World",
		"homepage": "https://github.com",
		"language": null,
		"forks_count": 9,
		"stargazers_count": 80,
		"watchers_count": 80,
		"size": 108,
		"default_branch": "master",
		"open_issues_count": 0,
		"has_issues": true,
		"has_wiki": true,
		"has_downloads": true,
		"pushed_at": "2011-01-26T19:06:43Z",
		"created_at": "2011-01-26T19:01:12Z",
		"updated_at": "2011-01-26T19:14:43Z",
		"permissions": {
			"admin": false,
			"push": false,
			"pull": true
		}
	}
}
`

func main() {
	var mp map[string]interface{}
	if err := json.Unmarshal([]byte(data), &mp); err != nil {
		log.Fatal(err)
	}
	fm, err := flatmap.Flatten(mp)
	if err != nil {
		log.Fatal(err)
	}
	var ks []string
	for k:=range fm{
		ks = append(ks,k)		
	}
	sort.Strings(ks)
	for _,k:=range ks{
		fmt.Println(k,":",fm[k])
	}
	
}

output

Key | Value ----| ----- clone_url | https://github.com/octocat/Hello-World.git created_at | 2011-01-26T19:01:12Z default_branch | master description | This your first repo! fork | false forks_count | 9.000000 full_name | octocat/Hello-World git_url | git://github.com/octocat/Hello-World.git has_downloads | true has_issues | true has_wiki | true homepage | https://github.com html_url | https://github.com/octocat/Hello-World id | 1296269.000000 language | mirror_url | git://git.example.com/octocat/Hello-World name | Hello-World open_issues_count | 0.000000 organization.avatar_url | https://github.com/images/error/octocat_happy.gif organization.events_url | https://api.github.com/users/octocat/events{/privacy} organization.followers_url | https://api.github.com/users/octocat/followers organization.following_url | https://api.github.com/users/octocat/following{/other_user} organization.gists_url | https://api.github.com/users/octocat/gists{/gist_id} organization.gravatar_id | somehexcode organization.html_url | https://github.com/octocat organization.id | 1.000000 organization.login | octocat organization.organizations_url | https://api.github.com/users/octocat/orgs organization.received_events_url | https://api.github.com/users/octocat/received_events organization.repos_url | https://api.github.com/users/octocat/repos organization.site_admin | false organization.starred_url | https://api.github.com/users/octocat/starred{/owner}{/repo} organization.subscriptions_url | https://api.github.com/users/octocat/subscriptions organization.type | Organization organization.url | https://api.github.com/users/octocat owner.avatar_url | https://github.com/images/error/octocat_happy.gif owner.events_url | https://api.github.com/users/octocat/events{/privacy} owner.followers_url | https://api.github.com/users/octocat/followers owner.following_url | https://api.github.com/users/octocat/following{/other_user} owner.gists_url | https://api.github.com/users/octocat/gists{/gist_id} owner.gravatar_id | somehexcode owner.html_url | https://github.com/octocat owner.id | 1.000000 owner.login | octocat owner.organizations_url | https://api.github.com/users/octocat/orgs owner.received_events_url | https://api.github.com/users/octocat/received_events owner.repos_url | https://api.github.com/users/octocat/repos owner.site_admin | false owner.starred_url | https://api.github.com/users/octocat/starred{/owner}{/repo} owner.subscriptions_url | https://api.github.com/users/octocat/subscriptions owner.type | User own

Related Skills

View on GitHub
GitHub Stars42
CategoryDevelopment
Updated1y ago
Forks7

Languages

Go

Security Score

75/100

Audited on Jun 9, 2024

No findings