Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON.parse函数,带有Ajax请求和\\";新行转义字符_Javascript_Json_Ajax_Escaping - Fatal编程技术网

Javascript JSON.parse函数,带有Ajax请求和\\";新行转义字符

Javascript JSON.parse函数,带有Ajax请求和\\";新行转义字符,javascript,json,ajax,escaping,Javascript,Json,Ajax,Escaping,编辑:json文件有以下行: {"pd":"ciao \\n ste"} 我正在请求一个带有ajax调用的有效json文件。 然后,解析结果 我不明白json文件中的“\\n”转义新行字符是怎么回事 如果我给JSON.parse提供相同的值,它会给我不同的结果 var result = JSON.parse(data); console.log(result); var result2 = JSON.parse('{"pd":"ciao \\n ste"}'); console.log(res

编辑:json文件有以下行:

{"pd":"ciao \\n ste"}
我正在请求一个带有ajax调用的有效json文件。
然后,解析结果

我不明白json文件中的“\\n”转义新行字符是怎么回事

如果我给JSON.parse提供相同的值,它会给我不同的结果

var result = JSON.parse(data);
console.log(result);
var result2 = JSON.parse('{"pd":"ciao \\n ste"}');
console.log(result2);
据我所知,这可能与之前的javascript和之后的解析正在转义(或不转义)字符串有关

问题是我也不明白这一点:

result = result.replace(/\\n/g, "<br />");
result=result.replace(/\\n/g,“
”);
我也必须逃离正则表达式本身吗

Sum:我想使用通过Ajax加载的.json文件。
我希望JSON.parse完成他的工作,并取消显示返回换行符的“\\n”。

多亏了Bergi给我的答案,我现在知道JSON.parse已经完成了他的工作。 这是我的错,我提供了一个json文件,里面有“\\n”而不是“\n”

这里是一个更新的jsbin,您可以看到现在JSON.parse在不同的场景中起着相同的作用。

反斜杠在JSON中转义。在JS字符串文本和JS正则表达式文本中,如果您想在解析的输出中获得反斜杠,您需要对其进行双重转义(
JSON.parse(\\\\”)
)。什么是
数据?如果服务器没有发送预期的值,您应该修复服务器,而不是尝试在客户端进行一些替换。当我检查chrome控制台中的数据变量时,我看到它保存着与.json文件完全相同的内容。我不明白为什么json中的“\\n”没有(在json.parse(data)之后)转换成新行字符,而是转换成“\n”。相反,如果您尝试在javascript中直接使用json.parse字符串(而不是加载它trhough ajax)var result2=json.parse(“{”pd:“ciao\\n ste”});它确实转换了“\\n”是的,但是字符串文字与JSON文件的内容不同(因为字符串文字转义),因此结果彼此不同。在该JSON(或真正的换行符)中应该有
\n
,而不是
\\n
。您可以在客户端(
data.replace(/\\\\n/,“\\n”)删除它
),但您确实应该在服务器端解决此问题。