- 28
- 0
问题描述
初学 golang,基础尚薄弱,遇到问题,尝试在网上找了一些方法,但感觉始终在乱撞,没理出思路。
项目用的是 golang,框架用的是 Echo。
想取 redis 中的数据并以 json 的形式返回出来。
redis 中的数据是经过 php 序列化的 json(另外的 Php 服务存储进来的),我先用 phpserialize.Decode ( github.com/wulijun/go-php-serialize/phpserialize )把从 redis 中取出的数据反序列化,然后用 JSON(200, data) 返回。
redis 存储的数据是这个样子(json 整体作为一个字符串): s:36:"{"name":"xiaoming","nickname":"neo"}"
但是在返回后,是以字符串的形式返回的。
而我的期待是以 json 形式返回出来。
还请不吝赐教。
相关代码
main.go
func main() {
e := echo.New()
e.GET("/getdata/:id", contract.dataGet)
log.Error().Err(e.Start(":8080")).Timestamp()
}
data.go
package contract
import (
"github.com/labstack/echo/v4"
"github.com/go-redis/redis"
"github.com/wulijun/go-php-serialize/phpserialize"
)
func (s Data) BuildData(data string) (interface{}, bool) {
if data == "" {
return nil, true
}
d, err := phpserialize.Decode(data)
if err != nil {
return nil, true
}
return d, false
}
func dataGet(c echo.Context) error {
// 省略 redis 配置
data := client.(*redis.Client).Get(cacheKey).Val()
result, e := BuildData(data)
if e {
return echo.NewHTTPError(400, echo.Map{"message": "data error."})
}
return c.JSON(200, result)
}
看到的返回结果
"{\"name\":\"xiaoming\",\"nickname\":\"neo\"}"
期待的结果
{"name":"xiaoming", "nickname":"neo"} 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
