JSON.stringify和encodeuricomponent

时间:2013-12-25 15:21:35

标签: javascript

我的AJAX GET请求的字符串如下所示:

return domain + '?x=' + JSON.stringify(x)

是否需要使用encodeUriComponent来使URI有效?例如:

return domain + '?x=' + encodeURIComponent(JSON.stringify(x))

4 个答案:

答案 0 :(得分:9)

JSON.stringify不会转义字符,它只会返回字符串表示形式,当您在url中使用它时,您需要使用encodeURIComponent

来转义它

答案 1 :(得分:6)

是。 JSON表示为 text ,您将其添加为URI的组件,因此您应该这样做。

答案 2 :(得分:3)

这是我通过阅读一些帖子和答案而理解的内容(请随时纠正我)

JSON - J ava S crpt O bject N otation

  • 如果您有JavaScript对象并且想要将其转换为字符串(包含JSON文本),请使用 JSON.stringify 。这称为序列化。
  • 当您希望将字符串(包含JSON文本)转换为JavaScript对象时,请使用 JSON.parse (例如,如果您从会话存储中获取包含JSON文本的字符串,并且您想要将它转换为JSON并使用对象的一些字段)。这称为反序列化,它与JSON.stringify相反。

无论JSON:

  • 如果您想在网址中发送“有问题”的字符,例如&,%等,请使用 encodeURIComponent 。相反的是decodeURIComponent。

我将这些答案用于我的总结:

Difference between JSON.stringify and JSON.parse

difference between escape, encodeuri, encodeURIComponent

答案 3 :(得分:0)

可以在url中使用rc4编码(如果内容不太长,则使用base64),然后在进程文件中解码