2010-05-14 42 views
1

我有一些JSON格式的數據(來自php)傳遞給javascript函數。當我嘗試執行此操作時,出現「無效的屬性ID」錯誤。以json格式傳遞數據時出現無效屬性ID錯誤

Error: invalid property id 
Source File: http://localhost/MathVoyager/index.php/test 
Line: 1, Column: 15 
Source Code: 
draw_quadratic({ 

下面是js函數簽名(數據和選項在JSON格式)

功能draw_quadratic(數據,選項,α,β)

下面是一個示例函數調用。

draw_quadratic({"label":"(((1)*x^((1))+(4))*((1)*x^((1))+(6))) = (0)","data":[[-8,8],[-7.5,5.25],[-7,3],[-6.5,1.25],[-6,0],[-5.5,-0.75],[-5,-1],[-4.5,-0.75],[-4,0],[-3.5,1.25],[-3,3],[-2.5,5.25],[-2,8]],"xaxis":1,"yaxis":1}, {"series":{"points":{"show":true},"lines":{"show":true}},"grid":{"hoverable":true,"clickable":true}}, 4, 8); 

(我嘗試使用海軍報JS庫繪製一些圖)

在此先感謝

+0

好的,我的愚蠢的錯誤。問題在於html代碼。我寫 <體的onload = 「draw_quadratic({$數據},{$選項},{$阿爾法},{$的β});」> (我使用smarty的模板) 所以雙引號在json字符串中過早地結束了onload。 用單引號替換雙引號解決了問題。 感謝所有回覆。 – robert 2010-05-14 06:09:32

+0

使用http://jsonlint.com/來驗證你的json。 – 2014-01-10 05:06:44

回答

-1
mydata= JSON.parse('{"label":"(((1)*x^((1))+(4))*((1)*x^((1))+(6))) = (0)","data":[[-8,8],[-7.5,5.25],[-7,3],[-6.5,1.25],[-6,0],[-5.5,-0.75],[-5,-1],[-4.5,-0.75],[-4,0],[-3.5,1.25],[-3,3],[-2.5,5.25],[-2,8]],"xaxis":1,"yaxis":1}'); 
myoptions= JSON.parse('{"series":{"points":{"show":true},"lines":{"show":true}},"grid":{"hoverable":true,"clickable":true}}'); 
draw_quadratic(mydata,myoptions,4,8); 

不要忘記''""發送參數jsonparse它需要一個時字符串

在PHP中您可以使用:

  • .json_decode - 解碼JSON字符串
  • .json_encode - 返回一個值

的代碼我的JSON表示在Chrome中與我合作。

相關問題