Java中的JSON PII数据屏蔽 [英] JSON PII data masking in Java
本文介绍了Java中的JSON PII数据屏蔽的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想屏蔽JSON的某些元素并打印到日志.可以通过替换伪数据或删除密钥对来进行屏蔽.是否有实用程序可以在Java中进行屏蔽?
I would like to mask certain elements of JSON and print to logs. Masking can be either by substituting by dummy data or removing the key pair .Is there a utility to do the masking in Java ?
例如,
使用JSON:
{
"key1":"value1",
"key2":"value2",
"key3":"value3",
}
单独屏蔽密钥2并打印JSON:
mask key 2 alone and print JSON:
{
"key1":"value1",
"key2":"xxxxxx",
"key3":"value3",
}
或
{
"key1":"value1",
"key3":"value3",
}
推荐答案
您可以使用jackson将json转换为地图,处理地图并将地图转换回json.
You could use jackson to convert json to map, process map and convert map back to json.
例如:
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
public void mask() throws IOException {
String jsonString = "{\n" +
" \"key1\":\"value1\",\n" +
" \"key2\":\"value2\",\n" +
" \"key3\":\"value3\"\n" +
"}";
Map<String, Object> map;
// Convert json to map
ObjectMapper mapper = new ObjectMapper();
try {
TypeReference ref = new TypeReference<Map<String, Object>>() { };
map = mapper.readValue(jsonString, ref);
} catch (IOException e) {
System.out.print("cannot create Map from json" + e.getMessage());
throw e;
}
// Process map
if(map.containsKey("key2")) {
map.put("key2","xxxxxxxxx");
}
// Convert back map to json
String jsonResult = "";
try {
jsonResult = mapper.writeValueAsString(map);
} catch (IOException e) {
System.out.print("cannot create json from Map" + e.getMessage());
}
System.out.print(jsonResult);
这篇关于Java中的JSON PII数据屏蔽的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文