java - 如何在 Java 中的 JSON 字符串中在不知道确切键的情况下屏蔽特定值

标签 java json string replace key-value

我收到字符串形式的 JSON,需要屏蔽一条信息,但是 JSON 结构和键名始终不同,但值的模式是可识别的。问题是,遍历 String/JSONObject 来屏蔽该数据的有效方法是什么。

我尝试将字符串转换为 JSONObject 并遍历每个嵌入的 JSONObject/Array,检测模式,然后用其屏蔽版本替换原始值。但是,当将此信息记录到控制台时,这似乎非常耗时。

引用值的模式是 9 位(长整型)数字。 结构始终从 "{"key1":[{"innerKey1":123456789}]}"到 "{"key1":"value1", "key2":{"innerKey1":123456789}"

结果示例:"{"key1":[{"innerKey1":"XXXXXX789"}]}"

最佳答案

如果 JSON 结构始终以优化的单行字符串形式提供,您只需在字符串中查找值并替换它,或者更详细地使用正则表达式来查找 innerKey1:12345 匹配项并替换它。

如果这只是出于日志记录的目的,您甚至可以将其实现为过滤器,具体取决于您的日志记录框架,它甚至可能是可配置的,而不必对其进行编码。

关于java - 如何在 Java 中的 JSON 字符串中在不知道确切键的情况下屏蔽特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58476835/

相关文章:

json - 创建没有组合器模式的递归 JSON 写入

java - 如何测试 Java String 中使用的支持数组?

php - 试图从 php 获取数组并将其存储在 java、android 中

string - 何时在 Go 中使用 []byte 或 string?

java - 频繁调用 Solr 查询期间 Solr 错误 -> "Cannot assign requested address (connect failed)"

java - response.sendRedirect 应在新窗口中打开

java - 小程序中的单例

java - jsoup 巨大的 html 下载

json - 将对象 ID 分配给 Firebase 中导入的 JSON 的方法

javascript - 如何从简单的 json 制作所需的 json 树