66596


<https://shinkufencer.hateblo.jp/entry/2018/08/03/235900>

によると厳密なJSONでは / はエスケープする必要があるみたいなのですが  
ruby の to_json はエスケープしてくれません

厳密なJSONにしてくれるオプションのようなのはないんでしょうか

<https://docs.ruby-lang.org/ja/latest/class/JSON.html>  
ここに to_json に関するドキュメントがないんですが  
どこを見ればオプションの仕様ってわかるんでしょうか


CC BY-SA 4.0
2020-05-14T08:33:55.513
66593
2020-05-14T09:23:49.197
question
ruby json
ruby to_json で / をエスケープしたい


そのブログ記事が[JSON規格](https://www.rfc-editor.org/rfc/rfc8259)を誤解しています。

[code]

          string = quotation-mark *char quotation-mark
    
          char = unescaped /
              escape (
                  %x22 /          ; "    quotation mark  U+0022
                  %x5C /          ; \    reverse solidus U+005C
                  %x2F /          ; /    solidus         U+002F
                  %x62 /          ; b    backspace       U+0008
                  %x66 /          ; f    form feed       U+000C
                  %x6E /          ; n    line feed       U+000A
                  %x72 /          ; r    carriage return U+000D
                  %x74 /          ; t    tab             U+0009
                  %x75 4HEXDIG )  ; uXXXX                U+XXXX
    
          escape = %x5C              ; \
    
          quotation-mark = %x22      ; "
    
          unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
    
[/code]

`/` が **エスケープできるもの** のリストに入っていますが、`unescaped` に %x2F も入っているため、
**エスケープする必要はありません** 。`/` と書いてもいいし、`\/` と書いてもよいのです。


CC BY-SA 4.0
2020-05-14T09:23:49.197
66596
2020-05-14T09:23:49.197
2021-10-07T07:34:52.683
-1
3475
66593
answer