为了账号安全,请及时绑定邮箱和手机立即绑定

从 Java 中的大型 JSON 文件中提取特定文本(密码字符串),而无需使用 JSON 帮助程序类

从 Java 中的大型 JSON 文件中提取特定文本(密码字符串),而无需使用 JSON 帮助程序类

收到一只叮咚 2022-09-07 17:57:05
我有以下从特定 REST 调用收到的大型 JSON。我只想提取密码字符串(以粗体突出显示)。所以我需要这些值。, , , , , 在 java 中。我想我将不得不使用字符串正则表达式进行搜索。有人可以帮忙吗?ConfigPWD_USER.passwordConfigPWD_ROOT.passwordinstanceOwnerPassworddatabaseUserPasswordfencedUserPassword{    "deployment_name": "name1",    "model": {        "model": {            "description": "",            "nodes": [{                "id": "OS Node",                "ptype": "image:OS Node",                "attributes": {                    <more json key value pairs>                    **"ConfigPWD_USER.password": "<xor>NzozMzA=",                    "ConfigPWD_ROOT.password": "<xor>NzozMzA="**                },                "type": "image:OS,                "groups": {},                "locked": []            }, {                "id": "disk for db instance",                "attributes": {                    <more json key value pairs>                },                "type": "add disk:1.0.0",                "groups": {},                "locked": []            }, {                "id": "disk for database data",                "attributes": {                    <more json key value pair>                },                "type": "disk:1.0.0",                "groups": {},                "locked": []            }, {                "id": "DB Server",                "startsAfter": ["disk for db instance",                    "OS Node"                ],                "locked": ["instanceMountPoint", "instanceMountPoint", "instanceMountPoint"],                "attributes": {                    "instanceMountPoint": "${disk for db instance.MOUNT_POINT}",                    <more json key value pair>                    **"instanceOwnerPassword": "<xor>NzozMzA=",**                    <more json key value pair>                    **"fencedUserPassword": "<xor>NzozMzA=",**                },                "type": "DBLUN",                "groups": {}            }
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

在groovy中有内置和代码来查找其中一个值,可能是这样的:groovy.json.JsonSlurper


def json = new groovy.json.JsonSlurper().parseText('''

{

    "deployment_name": "name1",

    "model": {

        "model": {

            "description": "",

            "nodes": [{

                "id": "OS Node",

                "ptype": "image:OS Node",

                "attributes": {

                    "ConfigPWD_USER.password": "1<xor>NzozMzA=",

                    "ConfigPWD_ROOT.password": "1<xor>NzozMzA="

                },

                "type": "image:OS",

                "groups": {},

                "locked": []

            }, {

                "id": "disk for db instance",

                "attributes": {

                    "ConfigPWD_USER.password": "2<xor>NzozMzA=",

                    "ConfigPWD_ROOT.password": "2<xor>NzozMzA="

                },

                "type": "add disk:1.0.0",

                "groups": {},

                "locked": []

            }]

        }

    }    

}            

''')


json.model.model.nodes.collect{n-> n.attributes."ConfigPWD_USER.password" }


查看完整回答
反对 回复 2022-09-07
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信