JSON.stringify和encodeuricomponent

use*_*593 9 javascript

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

return domain + '?x=' + JSON.stringify(x)
Run Code Online (Sandbox Code Playgroud)

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

return domain + '?x=' + encodeURIComponent(JSON.stringify(x))
Run Code Online (Sandbox Code Playgroud)

Rau*_*ria 10

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


Que*_*tin 6

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


Ora*_*Dar 6

这是我从阅读一些帖子和答案中了解到的(请随时纠正我)

JSON - Ĵ AVA小号CRIPT ö bject Ñ浮选

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

不管是 JSON:

  • 使用encodeURIComponent方法,只要你想在URL发送“有问题”的字符,如&,%等相反的是decodeURIComponent。

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

JSON.stringify 和 JSON.parse 的区别

转义、encodeuri、encodeURIComponent 之间的区别