我的應用程序導入一些csv數據,然後構建一個數組,將其序列化並將其保存在數據庫字段中。我將其保存在串行化的形式,因爲每次輸入該數據具有不同的結構...有時3列,有時10柱等在ruby中,我如何序列化數組並保留每個元素的數字/字符串類型?
[[「水果」,「價格」,「重量」], [ 「Apple」,1.23,4.5], [「Orange」,5.2,3.3]]
導入的數據有引號圍繞字符串,並且數字周圍沒有引號,所以在導入期間,我能夠保留類型每個元素。
但是,當我把它序列化(在數據庫字段保存)與ActiveSupport::JSON.encode(csv_data)
每個元素被保存爲一個字符串
[「果」,「價格」,「重量」], [「蘋果「,」1.23「,」4.5「], [」Orange「,」5.2「,」3.3「]]
所以當我反序列化它時,數值已轉換爲字符串,但我需要它們作爲後處理的數字。
問題是,每個數據導入都是不同的......有時它是所有的數字,有時第一列是字符串,有時2或3列可能是字符串。
我不在乎如果我使用JSON或不 - 我只需要一種方法來編碼和解碼數據,所以我可以將其填充到數據庫字段中,而不會丟失「類型」導致解碼。
我應該使用某種xml方法而不是JSON嗎?
請注意,Marshall格式在Ruby的不同版本(1.9與2.0)和implmentations(MRI與JRuby)之間不兼容。 – Kris 2015-07-29 09:52:39