go语言,一个redis存json字符串问题?

新手上路,请多包涵

在项目场景中,常为了隐藏某个变量,不暴露给前端,会使用结构体中的json:"-"标签去处理。如密码之类的

在对这个结构体转json串存redis,再取出时,密码已经不见,往往服务端做业务处理不希望隐藏任何属性

目前的解决方案是再定义一个结构体去处理

请问有没有更优的解决方案

阅读 3.3k
4 个回答

在定义一个结构体去单独处理是个很实在的办法。

没什么太好的替代方案,我想到的就是使用自定义一个tag标签,然后写两个通用函数,一个是系列化结构体以网络传输给客户端,对某些字段进行过滤,一个是序列化以存储到redis,自定义标签,约定好一个,然后根据需要调用序列化函数即可。

type data struct {
    name     string
    password string `json:"hideWhenNetworkRespouse"`
}

一般我还是喜欢,单独写一份明确的代码操作,生怕忘记写字段tag了,默认网络传输不显示敏感字段,需要存储到redis的地方,单独结构体和函数处理敏感字段。

写两个结构体。
1个用来存redis,这里存json的时候不用忽略。
1个用来给前端展示,这个转json的忽略。

什么洛枳问题,前端和 redis 没有关系,有不会发生交互。

接口脱密就行,redis 不需要脱密

变量名首字母小写呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏