美文网首页Go
[Golang]从Redis Pop出来Interface转St

[Golang]从Redis Pop出来Interface转St

作者: _小老虎_ | 来源:发表于2020-11-25 16:09 被阅读0次

popData为从Redis取出来的数据,Interface{} 类型,转换String

错误解法

                        var popJsonStr string = popData.(string)
            fmt.Println(popJsonStr)

            var taskData map[string]string
            err = json.Unmarshal([]byte(popJsonStr), &taskData)

            fmt.Println("================== TEST TASK DATA ====================")
            fmt.Println(taskData)
            if nil != err {
                fmt.Println(err.Error())
                continue
            }
            //处理

正确解法

需要用Unquote函数解析引号。

函数假设s是一个半引号、双引号、反引号包围的go语法字符串,解析它并返回它表示的值

                        var popJsonStr string = popData.(string)
            fmt.Println(popJsonStr)

            jsonInput, err := strconv.Unquote(popJsonStr)
            if nil != err {
                fmt.Println(err.Error())
                continue
            }

            var taskData map[string]string
            err = json.Unmarshal([]byte(jsonInput), &taskData)

            fmt.Println("================== TEST TASK DATA ====================")
            fmt.Println(taskData)
            if nil != err {
                fmt.Println(err.Error())
                continue
            }
            //处理

参考文献:
https://stackoverflow.com/questions/51478658/json-cannot-unmarshal-string-into-go-value-of-type-main-kvu

https://blog.csdn.net/xiaobafacai/article/details/77924491

相关文章

网友评论

    本文标题:[Golang]从Redis Pop出来Interface转St

    本文链接:https://www.haomeiwen.com/subject/nbyniktx.html