标签导航:

beego缓存redis json数据:取出json对象需要反序列化吗?

Beego框架下Redis缓存JSON数据的读取方法

在使用Beego框架将JSON数据存储到Redis后,读取时是否需要进行JSON反序列化取决于存储数据的类型。

问题背景

文中提到,将JSON字符串存储到Redis后,无法正确解析为JSON对象。

问题根源

代码分析表明,JSON数据存储到Redis时,使用了[]byte类型而非字符串类型。因此,读取数据时,需要先将其转换为[]byte类型,再使用json.Unmarshal()进行反序列化。

解决方案

存储代码修改:

将JSON数据转换为字符串后再存储到Redis:

errcache := cache_con.Put("area", string(json_str), time.Second*3600)

读取代码修改:

将读取的数据转换为[]byte类型后进行反序列化:

json.Unmarshal([]byte(cacheStr), &areas)

通过以上修改,即可正确读取并解析JSON对象。