2011-01-09 77 views
6

我正在使用Play!框架和我有一個模型(一個實體)有一個變量類型地圖。如何在Play中定義YAML文件中的地圖!框架?

爲了進行一些測試,我每次啓動應用程序時都加載一個YAML文件,但我不知道定義Map的語法。

比方說,我有這個類

public class aClass { 
    public int arg1; 
    public String arg2; 
    public Map<String, Integer> arg3; 
} 

將我的YAML文件是什麼樣的?我試過這個:

aClass(object1) 
    arg1: 34 
    arg2: aString 
    arg3: [key1: value1, key2: value2] <- What do I do here? 

這是我的許多嘗試之一。我不知道語法,我無法在Internet上找到它。我認爲玩!使用SnakeYAML作爲YAML解析器。

在文檔中,我找到了一些例子,但沒有一個會起作用。

在我的應用程序中,除了Map變量(示例中爲arg3)的大小爲0元素之外,其他所有工作都是有效的。

謝謝。

+0

根據SnakeYAML文檔和Play文檔,正確的表示法是使用問號。但是,我試圖用這種方式運行你的代碼,雖然它編譯了,但它沒有條目!我會繼續挖掘。 – Codemwnci 2011-01-09 20:56:35

+0

當您使用問號時它會起作用嗎? – 2011-01-10 01:35:42

回答

6

根據Google Groups上的該線程,看起來您需要的語法是使用問號。

該線程具有以下語法的工作映射。

Bloc(b2): 
    labelSeries: testDeValeur 
    criterias: 
    ? key1 
    : value1 
    ? key2 
    : value2 

所以,我想你的例子是

aClass(object1) 
    arg1: 34 
    arg2: aString 
    arg3: 
    ? key1 
    : value1 
    ? key2 
    : value2 

但是我已經測試過這一點,這是行不通的!我會建議提出一個錯誤來看看這個問題,因爲所有文檔都指出這是正確的。

相關問題