• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Golang 实现interface类型转string类型

    看代码吧~

    // Strval 获取变量的字符串值
    // 浮点型 3.0将会转换成字符串3, "3"
    // 非数值或字符类型的变量将会被转换成JSON格式字符串
    func Strval(value interface{}) string {
    	var key string
    	if value == nil {
    		return key
    	}
    	switch value.(type) {
    	case float64:
    		ft := value.(float64)
    		key = strconv.FormatFloat(ft, 'f', -1, 64)
    	case float32:
    		ft := value.(float32)
    		key = strconv.FormatFloat(float64(ft), 'f', -1, 64)
    	case int:
    		it := value.(int)
    		key = strconv.Itoa(it)
    	case uint:
    		it := value.(uint)
    		key = strconv.Itoa(int(it))
    	case int8:
    		it := value.(int8)
    		key = strconv.Itoa(int(it))
    	case uint8:
    		it := value.(uint8)
    		key = strconv.Itoa(int(it))
    	case int16:
    		it := value.(int16)
    		key = strconv.Itoa(int(it))
    	case uint16:
    		it := value.(uint16)
    		key = strconv.Itoa(int(it))
    	case int32:
    		it := value.(int32)
    		key = strconv.Itoa(int(it))
    	case uint32:
    		it := value.(uint32)
    		key = strconv.Itoa(int(it))
    	case int64:
    		it := value.(int64)
    		key = strconv.FormatInt(it, 10)
    	case uint64:
    		it := value.(uint64)
    		key = strconv.FormatUint(it, 10)
    	case string:
    		key = value.(string)
    	case []byte:
    		key = string(value.([]byte))
    	default:
    		newValue, _ := json.Marshal(value)
    		key = string(newValue)
    	}
    	return key
    }
    

    补充:golang json 为map[string] interface{}

    json字符串:

    {"sn":1,"ls":false,"bg":0,"ed":0,"ws":[{"bg":0,"cw":[{"sc":0,"w":"还"}]},{"bg":0,"cw":[{"sc":0,"w":"有点"}]},{"bg":0,"cw":[{"sc":0,"w":"眼熟"}]}]}

    需要将json格式中的w字段取出来,并且拼成结果串进行展示

    1、从json数组中获取ws

    2、ws是数组,数组元素为object

    3、cw是数组,数组元素为object

    4、w是string

    5、从cw遍历获取w字段

    解析代码:

    func RecResultJsonToPlain() {
        var recResult string
        var dat map[string]interface{}
        json.Unmarshal([]byte(json_str), dat)
     
        if v, ok := dat["ws"]; ok {
            ws := v.([]interface{})
            for i, wsItem := range ws {
                wsMap := wsItem.(map[string]interface{})
                if vCw, ok := wsMap["cw"]; ok {
                    cw := vCw.([]interface{})
                    for i, cwItem := range cw {
                        cwItemMap := cwItem.(map[string]interface{})
                        if w, ok := cwItemMap["w"]; ok {
                            recResult = recResult + w.(string)
                        }
                    }
                }
            }
        }
        fmt.Println(recResult)
    }

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • Java中InputSteam怎么转String
    • 浅谈Java中String的常用方法
    • Java实用工具之StringJoiner详解
    • golang 的string与[]byte转换方式
    • go语言map与string的相互转换的实现
    • Java基础入门语法--String类
    上一篇:golang通过反射设置结构体变量的值
    下一篇:golang 如何获取map所有key的方式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Golang 实现interface类型转string类型 Golang,实现,interface,类型,