【问题标题】:The url in json contains backslashesjson中的url包含反斜杠
【发布时间】:2013-10-02 05:37:12
【问题描述】:

我只是想知道为什么我的 wcf 休息返回 json,其中在 url 中包含反斜杠。如下:

https:\/\/s3.amazonaws.com\/reiaustralia\/1fc00dfab25044ecb31e4882121b535e\/jpg\/download.jpg?AWSAccessKeyId=AKIAISTDESL6TBRAVM4Q&Expires=1380692091&Signature=MduuaUAjQRisadtM%2FDuVDemexLY%3D

谢谢

【问题讨论】:

    标签: json wcf rest


    【解决方案1】:

    正斜杠可以在 JSON 中使用反斜杠进行转义,但并非必须如此。所以以下任何一种:

    {"url":"http://www.example.com/"}
    or
    {"url":"http\/\/www.example.com\/"}
    

    将解析为具有url 属性的对象,其字符串值为http://www.example.com/

    有些技术在生成 JSON 时会避开斜线,而有些则不会。例如,PHP 有一个名为 JSON_UNESCAPED_SLASHES 的选项,可让您控制是否转义斜杠。

    您可以从json.org 主页的“字符串”部分查看各种转义字符。

    【讨论】:

      【解决方案2】:

      因为 javascript 中的 //(双斜杠)表示注释,而 /{string}/(斜杠内的字符串)表示正则表达式。

      所以。要在 json 中保持正确的值,必须将 \(反斜杠)放在 /(斜杠)前面。

      【讨论】:

      • 这是 JSON,不是 javascript。 JSON 内部没有 cmets 或正则表达式。
      【解决方案3】:

      它们只是转义字符,当你在应用程序中使用字符串时就可以了

      【讨论】:

      • 如果你把它放在网络浏览器中,它不起作用。https:\/\/s3.amazonaws.com\/reiaustralia\/1fc00dfab25044ecb31e4882121b535e\/jpg\/download.jpg?AWSAccessKeyId= AKIAISTDESL6TBRAVM4Q&Expires=1380692866&Signature=%2BRNjuMCNYtI79A1DZ74mqLQnWRo%3D
      猜你喜欢
      • 2022-07-07
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多