欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang 實(shí)現(xiàn)interface類型轉(zhuǎn)string類型

 更新時(shí)間:2021年04月25日 09:05:06   作者:一條小碼農(nóng)  
這篇文章主要介紹了Golang 實(shí)現(xiàn)interface類型轉(zhuǎn)string類型的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

看代碼吧~

// Strval 獲取變量的字符串值
// 浮點(diǎn)型 3.0將會(huì)轉(zhuǎn)換成字符串3, "3"
// 非數(shù)值或字符類型的變量將會(huì)被轉(zhuǎn)換成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
}

補(bǔ)充: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":"有點(diǎn)"}]},{"bg":0,"cw":[{"sc":0,"w":"眼熟"}]}]}

需要將json格式中的w字段取出來(lái),并且拼成結(jié)果串進(jìn)行展示

1、從json數(shù)組中獲取ws

2、ws是數(shù)組,數(shù)組元素為object

3、cw是數(shù)組,數(shù)組元素為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)
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Golang 定時(shí)器的終止與重置實(shí)現(xiàn)

    Golang 定時(shí)器的終止與重置實(shí)現(xiàn)

    在實(shí)際開(kāi)發(fā)過(guò)程中,我們有時(shí)候需要編寫(xiě)一些定時(shí)任務(wù)。很多人都熟悉定時(shí)器的使用,那么定時(shí)器應(yīng)該如何終止與重置,下面我們就一起來(lái)了解一下
    2021-08-08
  • Go學(xué)習(xí)筆記之map的聲明和初始化

    Go學(xué)習(xí)筆記之map的聲明和初始化

    map底層是由哈希表實(shí)現(xiàn)的,Go使用鏈地址法來(lái)解決鍵沖突,下面這篇文章主要給大家介紹了關(guān)于Go學(xué)習(xí)筆記之map的聲明和初始化的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Go語(yǔ)言中的網(wǎng)絡(luò)編程實(shí)現(xiàn)方式

    Go語(yǔ)言中的網(wǎng)絡(luò)編程實(shí)現(xiàn)方式

    Go語(yǔ)言作為一種簡(jiǎn)潔而強(qiáng)大的編程語(yǔ)言,在網(wǎng)絡(luò)編程方面表現(xiàn)尤為出色,其內(nèi)置的net包提供了豐富的網(wǎng)絡(luò)I/O基礎(chǔ)設(shè)施,支持TCP、UDP協(xié)議,以及DNS解析等功能,本文將結(jié)合實(shí)際案例,詳細(xì)介紹Go語(yǔ)言在網(wǎng)絡(luò)編程中的詳細(xì)用法,需要的朋友可以參考下
    2024-10-10
  • golang的database.sql包和事務(wù)處理操作步驟

    golang的database.sql包和事務(wù)處理操作步驟

    事務(wù)是數(shù)據(jù)庫(kù)操作中的一個(gè)邏輯單元,由一系列的數(shù)據(jù)庫(kù)操作組成,這一系列操作要么全部執(zhí)行并且提交,要么全部回滾,確保數(shù)據(jù)的一致性和完整性,這篇文章主要介紹了golang的database.sql包和事務(wù)處理操作步驟,需要的朋友可以參考下
    2025-04-04
  • 看看你的Go應(yīng)用是否用了正確CPU核數(shù)

    看看你的Go應(yīng)用是否用了正確CPU核數(shù)

    這篇文章主要為大家介紹了Go應(yīng)用正確的CPU核數(shù)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Go語(yǔ)言實(shí)現(xiàn)的可讀性更高的并發(fā)神庫(kù)詳解

    Go語(yǔ)言實(shí)現(xiàn)的可讀性更高的并發(fā)神庫(kù)詳解

    這篇文章主要為大家介紹了Go語(yǔ)言實(shí)現(xiàn)的可讀性更高的并發(fā)神庫(kù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Go語(yǔ)言題解LeetCode705設(shè)計(jì)哈希集合

    Go語(yǔ)言題解LeetCode705設(shè)計(jì)哈希集合

    這篇文章主要為大家介紹了Go語(yǔ)言題解LeetCode705設(shè)計(jì)哈希集合,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • go程序測(cè)試CPU占用率統(tǒng)計(jì)ps?vs?top兩種不同方式對(duì)比

    go程序測(cè)試CPU占用率統(tǒng)計(jì)ps?vs?top兩種不同方式對(duì)比

    這篇文章主要為大家介紹了go程序測(cè)試CPU占用率統(tǒng)計(jì)ps?vs?top兩種不同方式對(duì)比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 一文帶你全面掌握Go語(yǔ)言中的正則表達(dá)式

    一文帶你全面掌握Go語(yǔ)言中的正則表達(dá)式

    正則表達(dá)式是一種強(qiáng)大的模式匹配工具,能夠在文本中進(jìn)行靈活的搜索和替換操作,本文將介紹?Golang?中的正則表達(dá)式語(yǔ)法,包括常用的匹配符號(hào)、模式修飾符以及示例應(yīng)用,希望對(duì)大家有所幫助
    2023-05-05
  • Go1.18新特性之泛型使用三步曲(小結(jié))

    Go1.18新特性之泛型使用三步曲(小結(jié))

    本文主要介紹了Go1.18新特性之泛型,是Go1.18的新特性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評(píng)論