66599


<https://docs.ruby-lang.org/ja/latest/class/JSON.html#M_LOAD>

> :symbolize_names  
>  真を指定するとハッシュのキーを文字列ではなくシンボルにします。デフォルトは偽です。

とあるんですが真にしても変わりません

[code]

    require "json"
    j = JSON.load '{"x":1}', symbolize_names: true
    puts j
    
[/code]

上記のようなテストコードを実行すると  
`{"x"=>1}`  
と出力されてしまいます

説明を読む限り  
`{:x=>1}`  
となるかと思ったんですがそういうものではないんでしょうか


CC BY-SA 4.0
2020-05-14T09:07:04.183
66595
2020-05-14T15:11:40.070
question
ruby json
JSON.load の symbolize_names オプションの使い方


> load(source, proc = nil, options = {}) -> object

というメソッドシグネチャーから読む限り、 options
を指定するためには、第2引数を`nil`に指定しなければならないのではないか、と思っています。また、 `symbolize_names`
だけだとエラーになるので、`create_additions: false` も指定する必要がある様子です。

[code]

    JSON.load('{"x":1}', nil, symbolize_names: true, create_additions: false)
    => {:x=>1}
    
[/code]


CC BY-SA 4.0
2020-05-14T10:02:43.647
66599
2020-05-14T10:02:43.647
754
66595
answer


JSON.loadをJSON.parseに変更してみるのはどうでしょうか。  
parseだと今書かれている引数でお望みの結果が得られると思います。


CC BY-SA 4.0
2020-05-14T15:11:40.070
66606
2020-05-14T15:11:40.070
40151
66595
answer