ActiveSupport::JSON.decode issue


#1

Good evening,

I’m having a rather odd JSON decoding issue when attempting to decode
an RPX JSON response containing the profile data.

Using the command test = ActiveSupport::JSON.decode, passing it the
string:

{“profile”:{“verifiedEmail”:“removed_email_address@domain.invalid”,“name”:
{“formatted”:“Test Name”},“address”:{“country”:"United Kingdom
"},“displayName”:“Test Name”,“preferredUsername”:“Test”,"url
":“http:\/\/www.rubycaster.com\/”,“gender”:“male”,"utcOffset
":“00:00”,“birthday”:“1971-02-10”,“providerName”:“MyOpenID”,
“primaryKey”:“2”,“identifier”:"http:\/\/test.myopenid.com\/
“,“email”:“removed_email_address@domain.invalid”},“stat”:“ok”}”

The command executes without any warning or exception. However when I
run the following on IRB I get an odd result:

irb(main):085:0> test[“profile”][“birthday”]
=> “19 1-02-10”

In the JSON string, if I replace “http:\/\/www.rubycaster.com\/”
with just “http” everything works as expected and the value gets
interpreted as an instance of the Date class.

Could someone help me find the right direction on this one? Rather
lost :wink:

Best regards,
DBA


#2

Update:

After dropping the ActiveSupport JSON decoder for the parser available
at http://json.rubyforge.org/ everything started working as intended.

Best regards,
DBA