Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON.parse无法从字符串创建对象_Javascript_Ruby On Rails_Json_Ruby - Fatal编程技术网

Javascript JSON.parse无法从字符串创建对象

Javascript JSON.parse无法从字符串创建对象,javascript,ruby-on-rails,json,ruby,Javascript,Ruby On Rails,Json,Ruby,我正在使用RubyonRails创建一个cookie,它将包含请求参数的数组作为字符串返回给视图。但是,我在解析该字符串时遇到以下错误: JSON.parse('%7B%22specialty%22%3A%5B%22Anesthesiology%22%5D%7D') Uncaught SyntaxError: Unexpected token % in JSON at position 0 如何解决此问题?您需要先使用decodeURIComponent对字符串进行解码 JSON.parse

我正在使用RubyonRails创建一个cookie,它将包含请求参数的数组作为字符串返回给视图。但是,我在解析该字符串时遇到以下错误:

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

Uncaught SyntaxError: Unexpected token % in JSON at position 0

如何解决此问题?

您需要先使用
decodeURIComponent
对字符串进行解码

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

当字符串被编码时。一旦你解码了它,你就得到了键值对,即字符串形式的对象。现在可以使用
JSON.parse
来形成Javascript对象

首先需要使用
decodeURIComponent
对字符串进行解码

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

当字符串被编码时。一旦你解码了它,你就得到了键值对,即字符串形式的对象。现在可以使用
JSON.parse
来形成Javascript对象

字符串不是有效的json

它是uri编码的,所以使用


该字符串不是有效的json

它是uri编码的,所以使用


其他答案是正确的,即负载是URI编码的,但是
decodeURIComponent
只是一个javascript方法。要在ruby端对其进行解码,请使用


您说您正在使用rails,因此URI对象应该已经可用,但是如果您没有使用rails,您需要首先
要求“URI”

其他答案说负载是URI编码的,但是
decodeURIComponent
只是一个javascript方法。要在ruby端对其进行解码,请使用


您说您正在使用rails,因此URI对象应该已经可用,但如果您没有使用rails,则需要
首先要求“URI”

未捕获的语法错误:
可能是javascript错误。
未捕获的语法错误:
可能是javascript错误。
JSON.parse(URI.unescape('%7B%22specialty%22%3A%5B%22Anesthesiology%22%5D%7D'))