我的应用程序导入了一些 csv 数据,然后我构建了一个数组,对其进行序列化,并将其保存在数据库字段中。我以序列化形式保存它,因为每次导入的数据具有不同的结构......有时是 3 列,有时是 10 列,等等。
[[“水果”, “价格”, “重量”], [“苹果”, 1.23, 4.5], [“橙子”, 5.2, 3.3]]
导入的数据在字符串周围有引号,在数字周围没有引号,因此在导入期间我能够保留每个元素的类型。
但是当我序列化它(保存在数据库字段中)时,ActiveSupport::JSON.encode(csv_data)
每个元素都保存为字符串
[[“水果”、“价格”、“重量”]、[“苹果”、“1.23”、“4.5”]、[“橙子”、“5.2”、“3.3”]]
因此,当我对其进行反序列化时,数值已转换为字符串,但我需要将它们作为数字进行后处理。
问题是,每个数据导入都是不同的……有时它都是数字,有时第一列是字符串,有时 2 或 3 列可能是字符串。
我不在乎我是否使用 JSON——我只需要一种对数据进行编码和解码的方法,这样我就可以将其填充到数据库字段中,而不会在解码期间丢失“类型”。
我应该使用某种 xml 方法而不是 JSON 吗?