项目要求把json字符串里面的敏感信息加密,比如手机号身份证之类,这就要求遍历json,并且覆盖所有的敏感key,原本以为挺难的,静下心来想了想,代码修修改改大约一个小时搞定了,其实是一个简单的递归,跟遍历一个目录并输出所有文件名一样,废话少说,直接贴代码和测试用例。
package com.ucredit.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
* Created by beibei on 18/1/24.
*/
public class JsonTest {
public static void main(String[] args) {
String sa = "{'sa':'saas','sb':['sa','ds','sda'],'sc':{'dsa':'21'}}";
JSONObject jsonObject = JSON.parseObject(sa);
System.out.println(changeSensitiveMsg(jsonObject).toJSONString());
}
//递归对象
private static JSONObject changeSensitiveMsg(JSONObject jsonObject) {
for (String key : jsonObject.keySet()) {
String json = jsonObject.getString(key);