That's exactly what I've just found out. :-)

As a workaround I am forcing the client app to send 0.0.

are you saying that the bug is fixed in Lift 2.0-M2?

Thanks for the answer,

cheers,

GA


On Feb 11, 2010, at 5:42 PM, Joni Freeman wrote:

> Hi,
> 
> I believe this bug is already fixed in trunk. If I'm right, the
> problem was missing conversion from JInt to float. You could fix it by
> changing these values "passMarkApplied":0,"thresholdApplied":0 to
> "passMarkApplied":0.0,"thresholdApplied":0.0
> 
> But it would be great if you have time to test with latest snapshot.
> It worked for me at least.
> 
> Cheers Joni
> 
> On Feb 11, 6:11 pm, GA <my_li...@me.com> wrote:
>> Hello guys,
>> 
>> I am having a very strange error parsing JSON messages. Everything was 
>> working perfect until I introduce a new array in the message. It supposed to 
>> be a very small change, but the system seems to be parsing java data types 
>> instead of scala data types.
>> 
>> This is the error message:
>> 
>> net.liftweb.json.MappingException: Parsed JSON values do not match with 
>> class constructor
>> args=129567,248,1,1,0,0, String
>> arg 
>> types=java.lang.Long,java.lang.Long,java.lang.Long,java.lang.Long,scala.BigInt,scala.BigInt,java.lang.String
>> constructor=public 
>> com.tribes.ga.api.FeedAPI$FilterLogging$2(long,long,long,long,float,float,java.lang.String)
>> 
>> I do not know how to solve this. There is another array in the same 
>> structure that works just fine.
>> 
>> This is the JSON message coming into the API:
>> 
>> {"lastSync":"Thursday, February11,2010",
>> "tribeId":1,
>> "filterLogging":[{"passMarkApplied":0,"thresholdApplied":0,"entryId":129567,"evaluationDescription":"String","objectFiltered":1,"filterApplied":1,"sourceId":248}],
>> "history":7,
>> "deviceId":1036,
>> "source":248,
>> "showNews":true,
>> "userId":1049,
>> "syncFlag":false,
>> "showNewsChanged":false,
>> "updatedFeeds":[]}
>> 
>> The error is with the array "filter". I am parsing it with the following 
>> code (this is an extraction of the entire definition):
>> 
>>             case class FilterLogging(entryId: Long,
>>                                      sourceId: Long,
>>                                      objectFiltered: Long,
>>                                      filterApplied: Long,
>>                                      passMarkApplied: Float,
>>                                      thresholdApplied: Float,
>>                                      evaluationDescription: String
>>             )
>> 
>>             case class UpdatedSource(userId: Long,
>>                                      deviceId: Long,
>>                                      tribeId: Long,
>>                                      syncFlag: Boolean,
>>                                      lastSync: String,
>>                                      history: Int,
>>                                      source: Long,
>>                                      updatedFeeds: List[UpdatedFeeds],
>>                                      filterLogging: List[FilterLogging]
>>             )
>> 
>>             val json = parse(req.body.map(bytes => new String(bytes, 
>> "UTF-8")) openOr "")
>>             val request: UpdatedSource = json.extract[UpdatedSource]
>> 
>> Any ideas?
>> 
>> Thanks in advance,
>> 
>> GA
> 
> -- 
> 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.
> 

-- 
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