2010-11-29 125 views
1
0001: response 
$[0] = [string] "{\"code\":200,\"id\":121}" 
0001: eval(response) 
SyntaxError: invalid label 

任何人都知道嗎?爲什麼eval在這裏失敗?

+2

你的外殼讓每個人都感到困惑。 – SLaks 2010-11-29 15:14:00

回答

14

你必須把它包裝()觸發表達式求值,如:

eval("(" + response + ")") 

You can test it out here


雖然一個較好的方法是本地JSON處理:

var result = JSON.parse(response); 

就包括json2.js對舊版瀏覽器(IE8 <)的支持,呼叫是一樣的......它只是增加了全球JSON對象如果它丟失。

+0

哦,是的!你救了我的屁股!這正是我正在尋找.. :) – Dennis 2012-12-17 03:15:55

4

您需要將JSON字符串包裝在括號內。

否則,{ ... }被解釋爲可執行語句塊,事實並非如此。

通過將它括在圓括號中,您可以強制解釋器將其解釋爲表達式。