2017-01-15 11 views
0

ruby​​ on railsを使用して、リクエストのparamsを含む配列を文字列としてビューに戻すクッキーを作成しています。しかし、私はJSON.parseその文字列を次のエラーが発生します。JSON.parseは文字列からオブジェクトを作成できません

JSON.parse('%7B%22specialty%22%3A%5B%22Anesthesiology%22%5D%7D') 

Uncaught SyntaxError: Unexpected token % in JSON at position 0 

これはどのように修正できますか?

答えて

2

文字列が有効ではありませんjson。 URIはとてもdecodeURIComponent()

JSON.parse(decodeURIComponent('%7B%22specialty%22%3A%5B%22Anesthesiology%22%5D%7D')) 
1

最初に文字列をデコードするには、decodeURIComponentを使用する必要があります。

JSON.parse(decodeURIComponent(
    '%7B%22specialty%22%3A%5B%22Anesthesiology%22%5D%7D' 
)); 

文字列がエンコードされているため。デコードすると、キー値のペア、つまりオブジェクトが文字列形式で取得されます。これで、JSON.parseを使用してJavascriptオブジェクトを作成できます。

1

他の回答を使用して、それをデコードエンコードされ

は、ペイロードがURIエンコードですが、decodeURIComponentはJavaScriptのみの方法であると言うには正しいです。ルビ側でデコードするにはURI.unescapeを使います。

JSON.parse(URI.unescape('%7B%22specialty%22%3A%5B%22Anesthesiology%22%5D%7D')) 

あなたはレールを使用しているので、URIオブジェクトはすでに利用可能であるべきであるが、あなたは、あなたが最初require 'uri'に必要となるレールを使用していなかった場合は言います。

+0

'Uncaught SyntaxError:'はおそらくjavascriptエラーです。 – mudasobwa

関連する問題