Skip to content

JoeyLearnsToCode/json-mask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

json mask

用途

在不直接修改类型源码的前提下,“外挂式”地获取其掩码化的 json 。

在什么情况推荐使用json mask

假设有一个类型,我不能直接修改它的源码,只能在同一个包的另一个文件赋予它方法(比如,类型是代码生成的),同时希望在它 json 串行化时进行掩码脱敏。

json mask 可以满足以上需求,因为 json mask 是基于NeedMask接口工作,而不是字段 tag 。 只需要为类型实现NeedMask接口(可在同一个包的另一个源码文件中),然后通过JsonMasked函数就能获取它的掩码化 json 。

如果类型的源码你能够修改,那么go-mask或许更适合你,它是基于字段 tag 的。

意图、设计思路

主要是为了实现对 protobuf 生成类型的掩码化json。因为直接修改生成代码不优雅、不安全,所以采用这种“外挂式”的实现。

另外,很大程度上参考了这篇文章:Golang 打平无结构化的 Json 文本进行脱敏打码

Demo

目前有且只有一种推荐用法,见TestExample

About

Golang通用json掩码脱敏工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages