簡體   English   中英

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

[英]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對象-

chrome控制台的屏幕截圖...

但是,當我嘗試使用@ 鏈接解釋的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;

它像魅力一樣運作!!

感謝您抽出幾分鍾來瀏覽這個問題!! :-)

祝你有美好的一天!

您的JSON無效。

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

根據http://jsonlint.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM