【Ruby】RubyでJSONをパースした時のエラー

2016年8月14日JavaScript,Ruby

こんにちは、しきゆらです

 

前回の記事でも書きましたが、最近はJavaScriptをよく書いています

その中で、サーバへデータを送信する時はオブジェクトをJSONとして送信するのが便利だということで

JSON文字列をJavaScriptで作って、サーバへ送っています

 

そして、サーバ側はRubyで書いているのですが

JSON文字列をRubyのオブジェクトに変換するためにはjsonというgemを使います

そこで注意することがあったのでメモしておきます

 


 

状態

HTMLファイルの中にあるフォームから、入力された文字列をJSON形式でサーバへ送信し

サーバ側ではJSON文字列をRubyのオブジェクトとして読み込みあれこれします

 

サーバへ送る文字列は、textareaに入力された文字列を送信します

input type="text"の場合では、特にエラー等は起きなかったので

同様にtextareaないの文字列をJSON形式でサーバへ送り、Rubyオブジェクトに変換する時に

エラーが発生し、正常に処理できませんでした

 

JSONの中に改行がある場合

正直なところこれが原因なのかはわかりませんが

サーバへ送る前に、JSでtextareaの文字列の中に含まれる改行(\r\n等)を<br>へと置換して送信したところ

エラーは発生せず、正常に処理することができました

 

実際、サーバへ送った文字列を別ページで表示する際は改行を<br>タグに置き換える処理をしていたので

それをサーバへ送る前にあらかじめ変換しておく

ということをやってみたらうっかりエラーが発生しなくなったので

今はいいかなって感じです

 

本当の原因はどうかわかりませんが

RubyでJSONをオブジェクトに変換する際にエラーが出る場合

JS側で文字列中の改行文字を別の何かに変換してみると、もしかしたらエラーが直るかもしれません

ということ

 

おわり

Posted by しきゆら