【发布时间】:2015-06-25 09:21:57
【问题描述】:
我写了一个示例代码只是为了解释我所追求的...
这是一个工作示例:
var json='{"hezi":"firstName","gangina":"lastName"}',
obj=JSON.parse(json);
alert(obj.gangina);
这里是带有换行符和制表符的完全相同的代码(只是为了使代码更具可读性,因为在我的真实代码中 JSON 数组字符串是巨大的):
var json=
'
{
"hezi":"firstName",
"gangina":"lastName"
}
',
obj=JSON.parse(json);
alert(obj.gangina);
我什至试图用:
obj=JSON.parse(json.replace(/(\r\n|\n|\r|\t)/gm,""));
所以...从技术上讲,我可以通过压缩我的行(手动删除所有\r\n|\n|\r|\t)来解决这个问题,但我很确定不管美化我的代码,都有一个快速解决方案。
这里需要小调整...
【问题讨论】:
-
你的第二个 json 是无效的字符串,因为 javascript 中的字符串不能有换行符。
-
您似乎在假设 JavaScript 字符串中允许换行符的情况下工作。它们不是,除非用 \ 转义。
-
@jcubic 所以解决它的唯一方法是手动压缩它?
-
压缩无关紧要,问题出在您的字符串定义中。请参阅下面 jehna1 的回答。
-
它与 JSON 中的换行符无关。这是因为您在 JavaScript 文件中编写 JSON 字符串。您的
replace呼叫甚至不会被评估,因为问题发生得更早。
标签: javascript arrays json object replace