どなブロ

Ruby, Rails, Python, 機械学習, その他気になったこととか思ったこととか

【Ruby / Rails】全体が文字列になっちゃってる配列を正しい形に直す

やりたいこと

  • viewからparamsで配列をもらうんだけど、全体が文字列になっちゃってる
"[123,456,789]"

↑こんな感じの、ホントは配列だけど文字列になっちゃってるやつ
↓本当はこうしたい

[123, 456, 789]

解決方法

  • 無理やり直す
    splitしてdeleteで余分な物を消す
pry(main)> hoge = "[123,456,789]"
=> "[123,456,789]"
pry(main)> hoge.split(',').map { |m| m.delete('[]').to_i }
=> [123, 456, 789]

https://qiita.com/_miyachik/items/addf3766f0e0dd20f154

  • JSON使う
    parseするだけ
    文字列だとParseErrorになっちゃう
pry(main)> hoge = "[123,456,789]"
=> "[123,456,789]"
pry(main)> JSON.parse hoge
=> [123, 456, 789]

https://stackoverflow.com/questions/4477127/ruby-parsing-a-string-representation-of-nested-arrays-into-an-array

感想

  • JSON.parseするとなんでそうなるの