2014-07-09 81 views
-2

我有一個字符串在這裏發表。我想將此字符串轉換爲json字符串。但是我收到了'undefine'的錯誤消息,請幫助我做到這一點。轉換字符串到JSON得到了未定義的錯誤

data = JSON.parse('{ name: "CHE-TELUGU", value: 123, y: 10.8 },{ name: "CHE-CORPORATE", value: 45, y: 40.8 },{name: "CHE-MALAYALAM",value: 155,y: 12.8,sliced: true,selected: true},{ name: "CHE-OPERATION", value: 20, y: 60.8 },{ name: "TRY-OPERATION", value: 20, y: 60.8 } '); 
          alert(data); 
+5

這根本就不是JSON。 JSON中的名稱在引號之間。見http://json.org –

+0

抱歉,夥計。它只是不是JSON,兄弟。 – naomik

+0

你總是可以將你的JSON粘貼到驗證器中以獲得想法,請參閱:http://jsonlint.com/ – thomas

回答

1

你得到一個錯誤的原因是因爲你的字符串不是有效的JSON原因有二:

  1. 你對象需要被裹在[],因爲他們是一個數組
  2. 你的對象屬性應該用雙引號

所以,像會工作:

JSON.parse('[{ "name": "CHE-TELUGU", "value": 123, "y": 10.8 }]') 

爲了幫助您瞭解更多關於JSON,並有一齣戲,請嘗試以下操作:

如果你打開瀏覽器,然後打開開發人員工具並轉到控制檯選項卡,可以快速編寫JS語句來測試他們。例如,如果您嘗試使用JSON.parse('{name:「CHE-TELUGU」}')這樣的無效JSON,則不會在屬性名稱周圍添加雙引號,您將看到'SyntaxError:Unexpected token n'消息。如果你嘗試使用JSON.parse('{「name」:「CHE-TELUGU」},{「name」:「CHE-TELUGU」}') - 沒有[]圓對象來創建數組, - 你會看到'SyntaxError:Unexpected token'消息。

0

添加到什麼伊恩·勞特利奇已表示 - 你的字符串需要顯示爲:

[ 
    { 
     "name" : "CHE-TELUGU", 
     "value" : 123, 
     "y" : 10.8 
    }, 
    { 
     "name" : "CHE-CORPORATE", 
     "value" : 45, 
     "y" : 40.8 
    }, 
    { 
     "name" : "CHE-MALAYALAM", 
     "selected" : true, 
     "sliced" : true, 
     "value" : 155, 
     "y" : 12.8 
    }, 
    { 
     "name" : "CHE-OPERATION", 
     "value" : 20, 
     "y" : 60.8 
    }, 
    { 
     "name" : "TRY-OPERATION", 
     "value" : 20, 
     "y" : 60.8 
    } 
]