2017-01-15 122 views
0

当我将散列持久化为JSON时,我期望散列被转换为JSON而不被修改,但是相反,键从整数更改为字符串。ActiveRecord的序列化将整数转换为字符串? [Rails]

型号:

class Shift < ActiveRecord::Base 
    serialize :api_returns, JSON 
end 

用法:

> Shift.create(api_returns: { 123 => '456' }) 
    SQL (0.5ms) INSERT INTO "shifts" ("api_returns") VALUES ($1) RETURNING "id" [["api_returns", "{\"123\":\"456\"}"]] 
=> #<Shift:0x007fe785038c60 id: 22, ... api_returns: {"123"=>"456"}> 

任何想法如何使ActiveRecord的不裂伤我的投入?

回答

1

JSON不能有整数键。键必须是双引号字符串,不允许其他类型。

http://json.org/

+0

这很合理,谢谢! – hakunin

0

使用parseInt函数(),您可以将其转换成JS,当你会使用它们。

var a = parseInt("10")