Java中Cloudfoundry VCAP_服务的包装器?

Java中Cloudfoundry VCAP_服务的包装器?,java,json,cloud-foundry,Java,Json,Cloud Foundry,使用VCAP_服务(java.lang.System.getenv(“VCAP_服务”)需要处理JSON字符串,该字符串可能具有非常复杂的结构,但遵循可预测的模式 是否有一个常用的帮助器类,它进行JSON解析以方便访问变量?(我知道如何解析原始JSON,因此我正在寻找一个具有良好getter的CF特定类来读取变量) 我发现它已经三年没有更新了-是要使用的库还是要使用 理想的情况是: VCapService config = new VCapService(); String some

使用VCAP_服务
(java.lang.System.getenv(“VCAP_服务”)
需要处理JSON字符串,该字符串可能具有非常复杂的结构,但遵循可预测的模式

是否有一个常用的帮助器类,它进行JSON解析以方便访问变量?(我知道如何解析原始JSON,因此我正在寻找一个具有良好getter的CF特定类来读取变量)

我发现它已经三年没有更新了-是要使用的库还是要使用

理想的情况是:

   VCapService config = new VCapService();
   String somevar = config.get("/user-provided/special/test","default-if-no-cloud");

我对查询并不挑剔(上面有点像URI或XPath)。

Spring Cloud Connectors是您想要的:


尽管名称不同,核心Spring Cloud Connectors库并不依赖于Spring框架,而是一个普通的旧Java库。请参阅此处有关使用库的核心从VCAP_服务解析对象模型的文档:。

您不必开发依赖于Cloud Foundry的应用程序(例如在应用程序中包装和转换VCAP_服务)。相反,您可以在启动应用程序之前解析VCAP_服务,并将其转换为更易于读取的环境变量。以下是使用名为(命令行JSON处理器)的工具的示例:


在应用程序启动之前,您可以将这两行代码放入启动脚本中,它会将VCAP_服务转换为“光”虽然我希望我的应用程序总是连接到一个环境变量中定义的数据库,不管它在哪个环境下运行。首先,我想模仿VCAPL服务的非常复杂的结构,以便不修改代码,但解析相关的PAR。从JSON对象中取出并将其粘贴在一个普通的旧env变量中可能是更好的方法!
MNG=$(echo $VCAP_SERVICES | jq '.mongodb[0].credentials.uri')
export MONGO_URL=$(echo $MNG | cut -d "\"" -f 2)