当我尝试解析
下面的JSON字符串时'{"yearDuration" : "365","timeCapsule" : {"line" : { "entryDate" : "1/1/2013", "exitDate" : "12/31/2013" },"duration" : "365"} }'
进入JSON对象 - 我收到以下错误
SyntaxError: Unexpected token '
然而,在chrome =>开发人员控制台,当我这样做时
JSON.parse('{"yearDuration" : "365","timeCapsule" : {"line" : { "entryDate" : "1/1/2013", "exitDate" : "12/31/2013" },"duration" : "365"} }');
我看到创建了JSON对象 -
但是,当我尝试使用eval方法解释@ link它工作得很好......
var presenceByYear = '{"yearDuration" : "365","timeCapsule" : {"line" : { "entryDate" : "1/1/2013", "exitDate" : "12/31/2013" },"duration" : "365"} }';
var brktPrefixPresenceByYear= '(' + presenceByYear + ')';
var presenceByYearObj = eval(brktPrefixPresenceByYear);
有人可以帮我弄清楚JSON.parse出了什么问题吗?
谢谢
答案 0 :(得分:0)
所以,我正在构建带有一组变量的JSON字符串,最后是
var presenceByYearStrPrefix = "'{\"yearDuration\" : \"" + 2013 + "\",";
var presenceByYearStrSuffix = " }'";
在一些循环和方法调用中进行一些计算后 -
var timeCapsuleStr = '"timeCapsule" : {"line" : { "entryDate" : "1/1/2013", "exitDate" : "12/31/2013" },"duration" : "365"}';
最后,创建了JSON字符串 -
var presenceByYear = presenceByYearStrPrefix + timeCapsuleStr + presenceByYearStrSuffix;
在我发布这个问题之后,我意识到我不需要在presenceByYearStrPrefix和presenceByYearStrSuffix变量的开头和结尾处使用单引号,因为presenceByYear的连接值本身就是一个字符串。
在下面的新变量值上调用JSON.parse -
var presenceByYearStrPrefix = "{\"yearDuration\" : \"" + 2013 + "\",";
var presenceByYearStrSuffix = " }";
var timeCapsuleStr = '"timeCapsule" : {"line" : { "entryDate" : "1/1/2013", "exitDate" : "12/31/2013" },"duration" : "365"}';
var presenceByYear = presenceByYearStrPrefix + timeCapsuleStr + presenceByYearStrSuffix;
它就像魅力一样!
感谢你花了几分钟来回顾这个问题!! : - )
祝你有个美好的一天!
答案 1 :(得分:0)