javascript与chrome控制台和eval中的JSON解析

javascript与chrome控制台和eval中的JSON解析,javascript,json,Javascript,Json,当我试图解析下面的JSON字符串时 '{"yearDuration" : "365","timeCapsule" : {"line" : { "entryDate" : "1/1/2013", "exitDate" : "12/31/2013" },"duration" : "365"}

当我试图解析下面的JSON字符串时

'{"yearDuration" : "365","timeCapsule" : {"line" : { "entryDate"    : "1/1/2013", "exitDate"    : "12/31/2013" },"duration" : "365"}    }'
进入JSON对象-我收到以下错误

SyntaxError: Unexpected token '
然而,在chrome=>developer控制台上,当我

JSON.parse('{"yearDuration" : "365","timeCapsule" : {"line" : { "entryDate" : "1/1/2013", "exitDate"    : "12/31/2013" },"duration" : "365"}    }');
我看到JSON对象被创建了-

但是,当我尝试使用eval方法时,正如解释的那样,@它工作得很好

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的错误所在吗


谢谢

因此,我正在用一组变量构造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和PresenceByYearsTrpuffix变量的开头和结尾使用单引号,因为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;
而且它很有魅力

感谢您花了几分钟时间仔细阅读此问题!!:-)

祝你有愉快的一天

您的JSON无效

Parse error on line 1:
'{    "yearDuration
^
Expecting '{', '['

根据我的chrome(33.0版…)上的

说明,
JSON.parse()没有问题
你的chrome版本是什么?相同的版本。然而,问题不在于chrome,我能够看到在chrome中创建的JSON对象-参见链接-。。。在javascript JSON.parse过程中,我遇到了错误。您可以尝试在
main.js
中的
270
行附近发布代码,因为这将有助于找出问题所在。