Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "fmt"
- "reflect"
- )
- func showMapJSON(basepath string, m map[string]interface{}) {
- for k, v := range m {
- vrv := reflect.ValueOf(v)
- vrt := vrv.Type()
- switch vrt.Kind() {
- case reflect.Float64:
- fmt.Printf("%s%s = %f\n", basepath, k, vrv.Float())
- case reflect.String:
- fmt.Printf("%s%s = %s\n", basepath, k, vrv.String())
- case reflect.Slice:
- length := vrv.Len()
- for i := 0; i < length; i++ {
- e := vrv.Index(i)
- fmt.Printf("%s%s[%d] = %v\n", basepath, k, i, e)
- }
- case reflect.Map:
- showMapJSON(basepath+k+".", vrv.Interface().(map[string]interface{}))
- }
- }
- }
- func main() {
- var m map[string]interface{}
- json.Unmarshal([]byte(`{
- "A":3,
- "S":"asd",
- "Bas":{
- "K":1,
- "C":[1,"2",3.3],
- "RR":{
- "m":1
- }
- },
- "arr":[1,"a2z",3.124908]
- }`), &m)
- showMapJSON("json.", m)
- }
Add Comment
Please, Sign In to add comment