在ruby中为浮点值创建JSON

时间:2015-11-30 08:48:30

标签: arrays ruby json

我按照这个答案按照我的预期得到了json。

Json creation in ruby for a list

如果我使用该方法,我可以为字符串值生成json。

假设我在数组中有浮点值并迭代它们以生成json,它不会按预期生成JSON,它只生成该数组中的最后一个值,

这是我试过的代码,

my_arr = ["1015.62","1014.08","1012.1","1019.09","1018.9","1019.86","1019.84"]

tmp_str = {} 
tmp_str["desc"] = {}

my_arr.each do |x|
    tmp_str["desc"]["#{x[0]}"] = x
    puts 'array'
end

puts JSON.generate(tmp_str) 

上面的代码生成以下json

{"desc":{"1":"1019.84"}}

但我想让json如下,

{"desc":{"1":"1015.62","2":"1014.08","3":"1012.1","4":"1019.09","5":"1018.9","6":"1019.86","7":"1019.84"}}

我需要更改代码才能获得此代码?

1 个答案:

答案 0 :(得分:1)

你很接近只需更改以下内容

my_arr.each_with_index do |x,i|
   tmp_str["desc"]["#{i+1}"] = x
end

执行时输出

puts JSON.generate(tmp_str)

{"desc":{"1":"1015.62","2":"1014.08","3":"1012.1","4":"1019.09","5":"1018.9","6":"1019.86","7":"1019.84"}}