ActiveSupport::JSONは自動でunicode escape sequenceにしてくれる
以前、JSON gemが1.4系でescapeしなくなったじゃん、ひどい! みたいなことを言ったことがあって、その後 Rails を使うようになって、なんか JSON 出力したときに unicode escape sequence になってるような気がするなー、なんでだろー、JSON gem のポリシーがまた変わったのかなーとか思ってたけど、違った。
よく見たら Rails は JSON gem じゃなくて ActiveSupport の JSON ライブラリを使っていた。
ほーなるほどな。ということは ActiveSupport を使ってるんだったらこっちの JSON にした方がより安全な JSON を吐けるということか。
今度から Rails 使わないときも JavaScript に渡す JSON を作るときには ActiveSupport::JSON を使うようにしようかな。遅いかもしれないけど、その方が安心だし。
実はちょっと意地になってやってやろうと思って、ぐぐったら json/pure になんかあるっていうんで、json/pure の JSON.utf8_to_json_ascii っていうやつを試してみようと思ったらこれが String しか受け付けなくて、なんだそれと思って to_json した結果をこいつに渡せばいいのかと思ったら encode 壊れて decode できませんと言われて、なんだよそれ!って思った直後に Rails どうしてるんだろう、と読んだら解決したっつー話でした。
最初から Rails 読めばいいんだよ。
More
Recent Posts
- » Bundler環境でIRBでもLSPでもドキュメントを利用する方法
- » Ruby 3.2と3.3のirb historyの扱いの違いと対処方法
- » Result型とRailway Oriented Programmingをめぐる旅
- » dry-operationのススメとエラー情報をViewまで持っていく方法の模索
- » aligach.netのRubyとViteをバージョンアップした
- » ViteRuby 3.7.0は起動方法のデフォルトがnpx経由になった
- » GmailからSpreadsheetとGoogle Driveへ書き出すGASライブラリを作った
- » 面倒くさがり屋のためのTypeScript環境
- » JavaScriptにも論理和代入なんてあったんだ
- » TypeScriptでpropertyを舐める処理が面倒くさい