2011-01-09 11 views
6

¡Estoy usando Play! framework y tengo un modelo (una Entidad) que tiene una variable de tipo Map.Cómo definir un mapa en un archivo YAML en Play! ¿marco de referencia?

Para realizar algunas pruebas, cargo un archivo YAML cada vez que inicio la aplicación, pero no conozco la sintaxis para definir un Mapa.

Digamos que tengo esta clase

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

¿Cómo sería mi archivo YAML parece? Intenté esto:

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

Éste es uno de mis muchos intentos. No sé la sintaxis y no puedo encontrarla en Internet. ¡Creo que el juego! usa SnakeYAML como analizador YAML.

En el documento encontré algunos ejemplos, pero ninguno de ellos funcionará.

En mi aplicación, todo funciona, excepto que la variable de Mapa (arg3 en el ejemplo) tiene un tamaño de 0 elemento.

Gracias.

+0

Según la documentación de SnakeYAML y la documentación de Play, la notación correcta es usar signos de interrogación. Sin embargo, he intentado ejecutar su código de esta manera, y aunque se compila, ¡no tiene entradas! Seguiré cavando – Codemwnci

+0

¿Funciona cuando usa los signos de interrogación? –

+0

He intentado de nuevo usando los signos de interrogación. Se compila, pero mi Mapa devuelve nulo cuando trato de obtener el valor de una de las claves especificadas en el archivo YAML. –

Respuesta

6

De acuerdo con este hilo en Google Groups parece que la sintaxis que necesita es usar un signo de interrogación.

El subproceso tiene un mapa de trabajo con la siguiente sintaxis.

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

Por lo tanto, pienso que su ejemplo podría ser

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

He probado esto y sin embargo no funciona! Sugiero que se genere un error para echar un vistazo a esto, porque toda la documentación apunta a que esto es correcto.

+0

Corregí mi pregunta. Pero encontré exactamente el mismo hilo en Google Groups y no funcionó ... –

+0

¡Así que esto no funciona, pero es la respuesta aceptada! ¿WAT? –

Cuestiones relacionadas