2017-01-15 123 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")