Hi,

Yes, that's true. Arrays are not yet supported. Just Option, List and
Map. Adding array support (which should be trivial) is on TODO list
though.

Cheers Joni

On Feb 11, 12:09 pm, Ali <saleh...@gmail.com> wrote:
> Thanks guys, Actually my problem is still there, It looks like lift-
> json doesn't support scala-arrays.
>
> case class Plan(  leftOperand:Option[Action],
>                   operator:Option[String],
>                   rightOperand:Option[Action])
>
> case class Game(buy:Map[String,Plan])
>
> case class Action(
>         functionName:String,
>         symbol:String,
>         inParams: Array[Number] ,
>         subOperand : Option[Action])
>
> val game = new Game(Map("a"->new Plan(Some(new
> Action("f1","s",Array(),None)),Some("A"),Some(new
> Action("f1","s",Array(0,1,2),None)))))
> implicit val format =
> Serialization.formats(ShortTypeHints(List(classOf[Plan],
> classOf[Action], classOf[Game])))
> println(Serialization.write(game))
>
> The output is:
>
> {"jsonClass":"Game","buy":{"a":{"jsonClass":"Plan","rightOperand":
> {"jsonClass":"Action","symbol":"s","functionName":"f1"},"operator":"A","leftOperand":
> {"jsonClass":"Action","symbol":"s","functionName":"f1"}}}}
>
> which is not correct (missing the inParams field from the action
> class).
>
> I appreciate your comment,
>
> Cheers,
> -A
> On Feb 11, 8:44 am, Joni Freeman <freeman.j...@gmail.com> wrote:
>
> > Hi,
>
> > Type hints should not be needed in this case since the Map is not used
> > in a polymorphic way. But the work-around Justin showed should work.
> > Actually it seems that it is enough to put type info just to Action to
> > make serialization work:
>
> >     implicit val format =
> > Serialization.formats(ShortTypeHints(List(classOf[Action]))
>
> > Anyway, I added a ticket for this 
> > defect:http://www.assembla.com/spaces/liftweb/tickets/341-Type-hints-are-nee...
>
> > Cheers Joni
>
> > On Feb 10, 7:49 pm, Justin Reardon <justin.rear...@gmail.com> wrote:
>
> > > Sometimes the serialization code needs a helping hand, using:
>
> > >         implicit val format = 
> > > Serialization.formats(ShortTypeHints(List(classOf[Plan], classOf[Action], 
> > > classOf[Game])))
>
> > > instead of the defaults makes it work here.
>
> > > Cheers,
> > > Justin Reardon
>
> > > On 2010-02-10, at 11:42 , Ali wrote:
>
> > > > Dear All,
> > > > I am wondering would you please tell me how can I use lift-json(2.0
> > > > snapshots) to serialize and deserialize the following scala case
> > > > classes.
>
> > > > case class Plan( plan:Option[Action] )
> > > > case class Game( game:Map[String,Plan])
> > > > case class Action(id:Int, subAction : Option[Action])
>
> > > > val game = new Game(Map("a"->new Plan(new Some(new Action(1,None)))))
> > > > implicit val formats = net.liftweb.json.DefaultFormats
>
> > > > game must beEqualTo( Serialization.read[Game]
> > > > (Serialization.write(game)))
>
> > > > Test fails.
>
> > > > Cheers,
> > > > -A
>
> > > > --
> > > > You received this message because you are subscribed to the Google 
> > > > Groups "Lift" group.
> > > > To post to this group, send email to lift...@googlegroups.com.
> > > > To unsubscribe from this group, send email to 
> > > > liftweb+unsubscr...@googlegroups.com.
> > > > For more options, visit this group 
> > > > athttp://groups.google.com/group/liftweb?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to lift...@googlegroups.com.
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.

Reply via email to