Hi,
One idiom for deconstructing a Map is to use a pattern match:
myMap.map { case (k, v) => ... }.
For instance:
val json = ("books" ->
books.map { b =>
("id" -> b.id) ~
("tags" -> b.tags.map { case (k, v) => JField(k, v) }.toList)
}
)
Note, the explicit call toList is required since JsonDSL provides an
implicit conversion from List[JField] to JObject (not from Iterable
[JField]).
Cheers Joni
On 16 marras, 08:44, Tate <[email protected]> wrote:
> Hi all,
>
> I am pretty new to Scala and Lift so this question may not be pitched
> or explained correctly.
>
> I have an abstract class called Book that is created via Object Book.
> No troubles with this.
>
> abstract class Book {
> val tags : Map[String,String]
> val id : String
>
> }
>
> I wish to serialize this to a Json response, but I am having troubles
> resolving the serialization of the Map (tags) to a simple name value
> pair.
>
> eg. Map(Title -> RedHat Unleashed, Category ->OS)
>
> Json response.
>
> "book": {
> "id": "ID1234",
> "tags": {
> "Title": "RedHat Unleased",
> "Category": "OS"
> }
> }
>
> val json = ("books" ->
> books.map { b =>
> ("id" -> b.id) ~
> ("tags" ->
> b.tags.map { t =>
> ==> this is where I need to create a
> List(JsonAST.JField(key,value)...)) from the map
> }
> )
> }
> )
>
> This is probably a general Scala question with maps, but I having
> difficult finding good examples that transform a map into a list with
> new object content.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---