Rubyで文字列ではなくキーとしてシンボルを持つJSON文字列データを解析するにはどうすればよいですか?
概要
これがJSON文字列の例です
json = "{:status=>\"ok\", :hitcount=>\"1\", :request_date=>Wed, 10 Oct 2019 00:00:00 +0000}"
以下に示すスニペットを試しましたが、これは機能せず、エラー JSON::ParserError (765: 予期しないトークン
require 'json'
JSON.parse(json)
解決策
残念ながら、JSON は Ruby シンボルを表すことができません。また、JSON ではキーと値の両方を引用符で囲む必要があるため、指定したものは有効な JSON ではなく、JSON パーサーが壊れます。あなたが望むのは次のことだけです:
json = "{\"status\": \"ok\", \"hitcount\": \"1\", \"request_date\": \"Wed, 10 Oct 2019 00:00:00 +0000\"}"
そして、Ruby JSON パーサー (@engineersmnky に感謝!) には気の利いた機能があります。
JSON.parse(json, symbolize_name: true)