2016-04-25 36 views
2

我有兩個json文件,versions.json包含變量及其各自的值,deploy.json包含這些變量的佔位符。目前,我正在通過jackson加載JSON並將其存儲在Properties中,並使用PropertyPlaceholderHelper解析。如何從另一個JSON解析JSON中的變量?

versions.json

{ 
    "version1" : "0.1", 
    "version2" : "0.2" 
} 

deploy.json

{ 
    "package1" : "$version1", 
    "package2" : "$version2" 
} 

Java代碼:

Properties props = new Properties(); 
props.put("version1", versions.getVersion1()); 
props.put("version2", versions.getVersion2()); 

// Now resolving something like 
PropertyPlaceholderHelper.resolvePlaceholder(deploy, props); 

我的問題是我需要每當一個新的軟件包被添加到更新我的代碼。我如何解決這些變量而不更新我的代碼?

回答

0

我通過加載JSON文件作爲屬性得到了解決方案。

ObjectMapper mapper = new ObjectMapper(); 
TypeReference<Properties> buildVersionsTypeReference = new TypeReference<Properties>() { }; 
Object object = mapper.readValue(jsonString, typeRef); 
if (object instanceof Properties) { 
     return (Properties) object; 
    } 

較早的I具有用於BuildVersion自定義類和我加載JSON成BuildVersion對象和每一個部件添加到屬性。現在我直接加載到Properties並將它傳遞到PropertyPlaceholderHelper

PropertyPlaceholderHelper.resolvePlaceholder(deploy, properties);