• Goframe的数组传值


    不知道为啥 

    直接

    columns := r.Get("columns")

    拿到参数以后需要:

    tmpList := gconv.Map(columns)
    var columnList []map[string]interface{}
    for _, v := range tmpList {
        if len(gconv.Map(v)) != 0 {
            columnList = append(columnList, gconv.Map(v))
        }
    }
    // columnList := gconv.SliceMap(columns) //为啥不能直接转换

    有时候会被转为map参数值

     程序:

    // 对于传入数组元素取值
    fmt.Println("columns = ",columns)
    tmpList := gconv.Map(columns)
    fmt.Println("tmpList = ",tmpList)
    var columnList []map[string]interface{}
    for _, v := range tmpList {
        if len(gconv.Map(v)) != 0 {
            columnList = append(columnList, gconv.Map(v))
        }
    }
    fmt.Println("columnList = ",columnList)
    fmt.Println("slice map columnList = ",gconv.SliceMap(columns))

    传递参数:

    "columns":{"0":{"name":"jack"},"1":{"name":"rose"}}

    打印值:

    columns =  map[0:map[name:jack] 1:map[name:rose]]
    tmpList =  map[0:map[name:jack] 1:map[name:rose]]
    columnList =  [map[name:jack] map[name:rose]]
    slice map columnList =  [map[0:map[name:jack] 1:map[name:rose]]]

    更换一种参数

    "columns":[{"name":"jack"},{"name":"rose"}]}

    打印值:

    columns =  [map[name:jack] map[name:rose]]
    tmpList =  map[{"name":"jack"}:map[name:rose]]
    columnList =  [map[name:rose]]
    slice map columnList =  [map[name:jack] map[name:rose]]

    此时拿到的原始值是数组

    总结:

    对于数组传值直接 gconv.Map会丢失元素

    对于对象传值,sliceMap会丢失元素

    难道只能传递一个map对象不能直接传递数组

    I can see a bigger world.
  • 相关阅读:
    elasticsearch(一):JAVA api操作
    elasticsearch(一):安装与配置
    Apache POI导出excel
    Java实现验证码
    Java数据库连接池原理与简易实现
    SpringMvc注解开发
    类型转换的时候,.valueOf()和.parseX(),.Xvalue()的区别
    kmp算法模板
    java 的任意进制间转换(很方便)
    海伦-秦九韶公式(利用三角形的三边求面积)
  • 原文地址:https://www.cnblogs.com/xuweiqiang/p/15347139.html
Copyright © 2020-2023  润新知