【发布时间】:2019-09-24 15:32:48
【问题描述】:
我有以下环境变量:
$ printenv
...
VCAP_SERVICES={"mariadbent":[{
"label": "mariadbent",
"provider": null,
"plan": "usage",
"name": "stackoverflow-database",
"tags": [
"mariadb",
"mysql"
],
"instance_name": "stackoverflow-database",
"binding_name": null,
"credentials": {
"host": "some-url-to-the-database.service",
"hostname": "some-url-to-the-database.service",
"port": 7689,
"name": "JDFJHDJF_DFJKDHFUD_DFUZDKFJDKJF",
"database": "JDFJHDJF_DFJKDHFUD_DFUZDKFJDKJF",
"username": "hsdfhsjkfhsjkhfjk",
"password": "iuzwerhsdjkfjkasd",
"database_uri": "mysql://dfdfdfdfdf:jrb4j4QxzgbAcfLk@some-url-to-the-database.service:3306/JDFJHDJF_DFJKDHFUD_DFUZDKFJDKJF?reconnect=true",
"uri": "mysql://dfdfdfdfdf:jrb4j4QxzgbAcfLk@some-url-to-the-database.service:3306/JDFJHDJF_DFJKDHFUD_DFUZDKFJDKJF?reconnect=true",
"jdbcUrl": "jdbc:mysql://some-url-to-the-database.service:3306/JDFJHDJF_DFJKDHFUD_DFUZDKFJDKJF?user=dfdfdfdfdf&password=jrb4j4QxzgbAcfLk"
},
"syslog_drain_url": null,
"volume_mounts": [
]
}]}
我可以使用System.out.println("VCAP_SERVICES: " + System.getenv("VCAP_SERVICES")); 获取整个数据“包”,但我想在上述输出中提取一些字段,例如username。
我该怎么做?
【问题讨论】:
-
VCAP_SERVICE看起来像一个 json。您可以使用 Jackson 或任何 json 解析器并获取您想要的值。 -
看起来像 JSON,所以你需要使用一些 JSON 库来解析它,例如杰克逊。
-
没有“子环境变量”这样的东西。
标签: java environment-variables