为什么我在野生动物园和Chrome中使用JSON.stringify来对JSON进行字符串化得到不同的结果?

时间:2019-02-26 15:17:45

标签: javascript json

我只是简单地使用declare -a array=( "1=Unprocessed===select count(*) from db where test='unknown'" "2=Total===SELECT count(*) FROM db" ) sqlconnection () { /usr/local/bin/mysql -u user -passwd -h xx.xx.xx.xx -se "$@" } for i in "${array[@]}"; do IFS== read s n _ _ q <<< "$i" sqlconnection "$q" done JSON.stringify({"a": "123"}) stringify

在Chrome浏览器中,json分号不会被转义,它将回显

"

但是,如果我在野生动物园中使用相同的代码,JSON.stringify({"a": "123"}) "{"a":"123"}" 分号将被转义,就像这样

"

我想知道为什么chrome和safari结果不同的原因

1 个答案:

答案 0 :(得分:4)

这与JSON.stringify无关,而与控制台如何显示值文字有关。

Safari选择使整行成为有效文字。即您可以将整行复制粘贴到Javascript源代码中,这将是有效的。

Safari displays "foo\"bar"

Chrome会选择在行的 周围添加装饰性""标记,以表示它是字符串值,但仅按原样显示字符串内容,而不会使其成为有效的文字

Chrome displays "foo"bar"

Safari的方法的优点是您可以将粘贴值复制为代码,而Chrome的优点是您可以读取字符串的内容,而无需根据字符串转义规则在脑海中进行解析。