【发布时间】:2022-04-12 08:03:40
【问题描述】:
我有一个从 JSON 对象转换而来的字符串。
String myString = {
\"name\":\"Dennis",
\"password\":\"12345\",
\"secretValue\":\"12345\",
\"OtherSecretList\":[\"ADD\",\"BND\"],
\"TypeList\":[\"M\",\"F\"]
}
我想在记录之前屏蔽一些值。
String result = myString.replaceAll("(?<=secretValue\":\")(.*?)(?=\")", "*****")
.replaceAll("(?<=password\":\")(.*?)(?=\")", "*****");
这适用于非数组值。但我也想屏蔽 OtherSecretList 元素。
我试过这个答案
java regex mask all elements in a list with last 4 characters visible
我想看到像这样的价值
OtherSecretList:["****","****"]
但是失败了。任何帮助表示赞赏。
【问题讨论】:
-
这里最简单的做法是使用 GSON 之类的东西解析原始 JSON 字符串,屏蔽您想要的内容,然后转换回字符串。
标签: java json regex masking data-masking