2011-09-21 7 views
5

Estoy utilizando Struts 2 junto con el plugin json, las correlaciones de propiedades en el archivo struts.xml suelen ser frustrantes pero puedo descifrarlas.Cómo especificar las propiedades del mapa en Struts 2 Plugin JSON

Me he encontrado con un caso en el que no puedo configurar includeProperties para darme el resultado que espero.

Suelo utilizar una expresión de configuración

^itemList\[\d+\]\.id, 
^itemList\[\d+\]\.name 
.... 

Esto funciona bien.

En este caso me gustaría devolver datos de no un mapa de una lista (o un mapa que es una niña de un miembro de la lista)

Si se utiliza un * todo el mapa se imprime correctamente, pero no quiero todos los datos de los elementos del mapa.

^itemList\[\d+\]\map\.* 

El conjunto mapa se returnd

He probado varios formatos diferentes y ninguno de ellos ha dado resultados.

^itemList\[\d+\]\map\[\d+\]\.id 
^itemList\[\d+\]\map\[\d+\]\.name 

Nada se devuelve en la propiedad mapa

alguien tenía alguna suerte con una sintaxis para restringir el contenido de un mapa?

Gracias -Scott

Respuesta

0

1) Su expresión regular no es sospechoso. Tenga en cuenta que en la expresión "^ itemList [\ d +] \ map [\ d +]. Id", + d se refiere a uno o más dígitos, por lo que el mapa debería tener los dígitos como su clave. Si esto no es lo que quieres, entonces '. +' Es probablemente más apropiado (uno o más de cualquier personaje).

2) Convierta el Mapa en un LinkedHashMap y luego tállelo como una lista. (No lo ha probado, es posible que no funcione)

+0

Hice un par de errores en las expresiones, me perdí un par de '.' pero está en lo correcto, el + d está buscando un número. Probé un par de iteraciones de otras expresiones para representar la clave de cadena del Mapa, nada de lo que probé funcionó. En este punto he creado un objeto liviano que estoy rellenando para representar los datos en mi mapa, este fue el enfoque más funcional. Requería una clase adicional y movió parte de la configuración a un punto diferente en la aplicación, pero produjo el mejor resultado para mi propósito. – Scott

1

No puede usar el mapa 'd' it como entero. Pruebe esto ^itemList\..*$

Cuestiones relacionadas