[英]JSON parse in javascript vs. chrome console and eval
當我嘗試解析以下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方法時,它工作正常...
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;
只有在我發布此問題后,我才意識到我不需要在presentingByYearStrPrefix和presenceByYearStrSuffix變量的開頭和結尾使用單引號,因為presentationByYear的串聯值本身就是一個字符串。
在下面的新變量值上調用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;
它像魅力一樣運作!!
感謝您抽出幾分鍾來瀏覽這個問題!! :-)
祝你有美好的一天!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.