【问题标题】:Python JSON encoderPython JSON 编码器
【发布时间】:2012-03-21 11:35:48
【问题描述】:

我有一个这样的字典:

data = {"data":"http://abc/def"}

当我打电话给json.dumps(data) 时,我明白了:

'{"data":"http://abc/def"}'

但我想要这个:

'{"data":"http:\/\/abc\/def"}'

因为我使用 jquery 解析 json 但似乎它不理解未转义的solidus,或者有什么方法可以让 jquery 理解?

更新

例如,这是我的 json 数据

{"data": ["http://abc.com/aaaaaaaa/bbbbbbbbb/cccccccccc/xyz.mp3"]}

这是我的成功函数

function showResult(result) {
            $.each(result.data, function(i, item){
                link = $('<a>').attr('href', item).text(item)
                $("#result").append('<br>')
                $("#result").append(link);
            });
        }

结果应该是指向

的超链接
http://abc.com/aaaaaaaa/bbbbbbbbb/cccccccccc/xyz.mp3

但我有一个超链接到

http&#58;&#47;&#47;abc.com&#47;aaaaaaaa&#47;bbbbbbbbb&#47;cccccccccc&#47;xyz.mp3

如果用'\/'替换所有'/',一切都很好

【问题讨论】:

  • 你能描述一下 jquery 是如何不理解它或者你在 jquery 中使用这个 json 时遇到了什么错误吗?
  • 为什么在正斜杠前有两个反斜杠?当然这意味着一个转义的反斜杠和一个未转义的正斜杠?
  • 你能给我们看一下jQuery代码吗?我在浏览器的 Web 控制台中尝试了 JSON.parse('{"data":"http://abc/def"}'),它运行良好。
  • @Marcin:我一开始没有使用编辑器代码标签

标签: python json jquery


【解决方案1】:

通常您不会在 JSON 中转义正斜杠,但如果您确定这是您的问题,您可以简单地这样做:

s = json.dumps(data)
s = s.replace("/", "\\/")

【讨论】:

  • 如果你没有使用一个自定义的库来弄乱正斜杠,那就有问题了。您应该考虑定位错误,因为随着应用程序的增长,它会产生越来越多的问题
猜你喜欢
  • 2014-05-27
  • 1970-01-01
  • 2012-08-20
  • 2015-04-22
  • 2018-12-19
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
相关资源
最近更新 更多