我有一个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"}
我也尝试过关注类似的主题,比如here和here,以及一些类似的主题。但即使在应用了这些之后,也没有什么效果。如果有任何帮助,请在这里感谢。
这是我尝试过的一种解决方案:
var jsonString = JSON.stringify(data).replace(/(\r\n|\n|\r)/gm,"");
有没有办法检测到这些换行符和制表符空格并将其删除?
发布于 2018-01-04 11:00:54
你不应该打电话给JSON.stringify()
。这会将字符串中的换行符转换为文字\n
,这将与regexp中的转义序列不匹配。只需直接对坏数据进行替换即可。
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);
发布于 2020-06-09 22:42:53
这对我很有效:
var jsonString = data.replace(/[\n\r\t]/g,"");
发布于 2018-01-04 10:56:23
这不是有效的JSON值。如果引用https://www.json.org/,则换行符、回车符等将需要包含在值本身中。
没有办法修改,因为解析器已经抛出了错误。
我能想到的唯一解决方案是让JSON文件的作者像修改后的JSON一样修改它们的值,或者如果他们想保留换行符,
{"T":".\n^00:00:43^2008-09-11 12:00:00.0"}
https://stackoverflow.com/questions/48087905
复制相似问题