[英]Remove the tab space or line breaks in a javascript string
我有一个 JSON 文件,我正在获取其中可能包含新行的 json 内容。 现在我面临一个问题。 我收到以下错误:
Unexpected token ↵ in JSON at position 9
注意:错误消息特别说明了这个符号:'↵'。 这是什么意思?
我的JSON:
{"T":".
^00:00:43^2008-09-11 12:00:00.0"}
但是,如果我删除了新行(不确定它是新行还是制表符空间,无论我面临这个问题,即使它是制表符空间或新行。它在正常空间下工作正常。)。 下面是修改后的 JSON,看起来不错。
修改后的 JSON:
{"T":".^00:00:43^2008-09-11 12:00:00.0"}
我试图遵循类似的线程,比如这里和这里以及一些类似的线程。 但即使在应用这些之后也没有任何效果。 请在此感谢任何帮助。
这是我尝试过的解决方案之一:
var jsonString = JSON.stringify(data).replace(/(\r\n|\n|\r)/gm,"");
反正有没有检测这些换行符和制表符空间并删除它们?
您不应该调用JSON.stringify()
。 这会将字符串中的换行符转换为文字\\n
,这不会与\\n
则表达式中的转义序列匹配。 直接对坏数据进行替换即可。
var data = `{"T":". ^00:00:43^2008-09-11 12:00:00.0"}`; var jsonString = data.replace(/(\\r\\n|\\n|\\r)/g,""); var object = JSON.parse(jsonString); console.log(object);
这对我有用:
var jsonString = data.replace(/[\n\r\t]/g,"");
这不是有效的 JSON 值。 如果您参考https://www.json.org/ ,则需要将换行符、回车符等包含在值本身中。
没有办法修改,因为解析器已经抛出了错误。
我能想到的唯一解决方案是让 JSON 文件的作者修改他们的值,比如你的 Modified JSON,或者如果他们想保留那个换行符,
{"T":".\n^00:00:43^2008-09-11 12:00:00.0"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.