2011-01-09 26 views
6

私はPlay!を使用しています。フレームワークであり、Map型の変数を持つモデル(エンティティ)を持っています。Play!のYAMLファイルでマップを定義する方法フレームワーク?

いくつかのテストを行うには、アプリケーションを起動するたびにYAMLファイルをロードしますが、マップを定義する構文はわかりません。

はのは、私は私のYAMLファイルがどのように見えるか、このクラス

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

があるとしましょうか?私はこれを試みた:

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

これは私の多くの試みの1つです。私は構文を知らないし、私はインターネット上でそれを見つけることができません。私はプレイと思います! SnakeYAMLをYAMLパーサとして使用します。

私はいくつかの例を見つけましたが、どれもうまくいきません。

私のアプリケーションでは、Map変数(この例ではarg3)のサイズが0の要素を除いてすべてが機能します。

ありがとうございました。

+0

SnakeYAMLのドキュメントとPlayのドキュメントによれば、正しい記法は疑問符を使用することです。しかし、この方法でコードを実行しようとしましたが、コンパイルされてもエントリはありません!私は掘り続けます。 – Codemwnci

+0

疑問符を使用すると動作しますか? –

+0

私は再び疑問符を使って試しました。これはコンパイルされますが、YAMLファイルで指定されたキーの値を取得しようとすると、Mapからnullが返されます。 –

答えて

6

Google Groupsのこのスレッドによれば、必要な構文は疑問符を使用するように見えます。

スレッドには、次の構文で動作するマップがあります。

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

だから、私はあなたの例では、

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

私はしかし、これをテストしてきたし、それが動作しないだろうと思います!すべてのドキュメントでこれが正しいと指摘しているので、これを調べるためにバグを提起することをお勧めします。

+0

質問を修正しました。しかし、私はGoogle Groupsで全く同じスレッドを見つけましたが、うまくいきませんでした... –

+0

これはうまくいかず、受け入れられた答えです!ワット? –

関連する問題