zoukankan      html  css  js  c++  java
  • map[string]interface{} demo

    package main
    
    import (
        "encoding/json"
        "fmt"
        "reflect"
    )
    
    func demo1() {
        txt := `{"a":1,"b":2,"c":[{"name":"1","group":"2"},{"name":"3","group":"4"}]}`
        var m map[string]interface{}
        if err := json.Unmarshal([]byte(txt), &m); err != nil {
            panic(err)
        }   
        for _, v := range m["c"].([]interface{}) {
            fmt.Println(v)
        }   
    }
    
    func demo2() {
        txt := `{"a":1,"b":2,"c":[{"name":"1","group":"2"},{"name":"3","group":"4"}]}`
        var m map[string]interface{}
        if err := json.Unmarshal([]byte(txt), &m); err != nil {
            panic(err)
        }   
        v := reflect.ValueOf(m["c"])
        count := v.Len()
        for i := 0; i < count; i++ {
            fmt.Println(v.Index(i))
        }
    }
    
    func demo_all() {
        txt := `{"a":1,"b":2,"c":[{"name":"1","group":"2"},{"name":"3","group":"4"}]}`
        var m map[string]interface{}
        if err := json.Unmarshal([]byte(txt), &m); err != nil {
            panic(err)
        }
        for _, v := range m {
            fmt.Println(v)
        }
    }
    
    func main() {
        demo1()
        fmt.Println("====================")
        demo2()
        fmt.Println("====================")
        demo_all()
    }

    运行结果:

    [root@wangjq 333]# go run zzz.go 
    map[name:1 group:2]
    map[name:3 group:4]
    ====================
    map[group:2 name:1]
    map[name:3 group:4]
    ====================
    1
    2
    [map[name:1 group:2] map[name:3 group:4]]
  • 相关阅读:
    HDFS 2.X新特性
    kettle的系列教程
    Kettle基本使用
    MySQL流程控制结构
    MySQL函数
    MySQL存储过程和函数
    MySQL变量
    MySQL视图
    TCL(事务控制语言)
    MySQL标识列(自增长列)
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/11643140.html
Copyright © 2011-2022 走看看