gpt4 book ai didi

java - jsonObject as string - 搜索正则表达式以删除密码字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:52 25 4
gpt4 key购买 nike

我有一个 json 字符串,它的内容中某处有一个像这样的字符串:

 "password": "password2"

这可以在 json 字符串中的任何地方,所以不要假设它在第一层。它甚至可以在 jsonArray 中。所以我需要搜索整个字符串并删除这个字段,或者将它的值设置为 null。

所以我需要能够搜索整个字符串并替换密码。例如,字符串可能如下所示:

我只是想用它来记录。我的问题是,我想删除与第三方共享的密码值。

我需要在 java 中使用正则表达式来搜索此字符串并将密码值替换为空字符串,或者我什至可以对密码进行 md5。如果不存在密码字符串,它一定不会失败。我怎样才能做到这一点?所以要清楚,给定任何输入作为字符串我希望过滤器后的结果是:

 "password": ""

或者如果更容易的话,它可以是密码值的 md5 而不是 null。你能帮忙吗?

所以我要创建的函数如下所示:

public String removePasswordFromJsonString(String jsonString){


//.. do the regualar expression work here....

return jsonString;

}

最佳答案

试试这个,

String response="{ \"password\": \"password2\", \"otherValue\": \"c18bd5a4-f734-44bf-be77-56b1267dcb9e\" }";
try {
JSONObject jsonObject=new JSONObject(response);
jsonObject.put("password", "");
System.out.println(jsonObject.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

输出:

{"password":"","otherValue":"c18bd5a4-f734-44bf-be77-56b1267dcb9e"}

注意:上面的代码会将您的密码字段设置为空,无论它在哪里,顺序无关紧要,它只会用空字符串覆盖该字段


如果你仍然喜欢使用 regex 然后应用这个

Regex Demo

    String response="{\n \"email_address\": \"user_JeAw@domain.com\",\n \"password\": \"password1\",\n \"device_id\": \"wtnmrrwyhjeatdcnt\",\n \"device_name\": \"xshjavwuqmtnkhuuxkjfgsnfnd\",\n \"device_token\": \"03118557-2755-495b-f97e\"\n}";
try {

String newstr= response.replaceAll("(?:\\bpassword)\\W+\\w+", "password\":\"");
JSONObject jsonObject=new JSONObject(newstr);
if (jsonObject.getString("password").isEmpty()) {
System.out.println("empty password" + jsonObject.getString("password"));
}
} catch (JSONException e) { }

输出:

empty password

(?:\\bpassword)\\W+\\w+

(?:\\bpassword) 匹配 password 字符串

  • ?: 匹配token
  • \\b 边界意味着不匹配 another_password

\\W+ 匹配任何非单词字符意味着特殊字符,如 ,\n

\w+ 捕获一个或多个单词,捕获 \":" 等之后的字符串

关于java - jsonObject as string - 搜索正则表达式以删除密码字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41306989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com