我收到字符串形式的 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/