2016-03-04 178 views
0

我有一個JSON:JSON.parse:爲什麼這不起作用

$.ajax({ 
     type: "POST", 
     url: myUrl, 
     success: function (result) { 
      var data = JSON.parse(result); 
      for (var i = 0; i < data.poles.length; i++) { 
      .... 

我在調試器中看到的是:

data = "{"poles":[{"id":36,"name":"AUVERGNE"},{"id":44,"name":"Alsace"},{"id":42,"name":"Artois"},....],"poleNumber":48} 

但我得到一個消息,說data.poles沒有定義

我想錯過什麼?

+0

我想'data'是一個字符串,你只是使用了錯誤類型的字符串文字。如果它是一個字符串,那麼它顯然不是一個對象 – MinusFour

+3

爲什麼'{'在引號中?我認爲你的引號是倒置的,'poles'應該用引號括起來,括號不應該是,我認爲你的對象實際上是正確的,如果你剛剛刪除了第一個'' '在你的第一個'{'之前。 – zero298

+0

我編輯了我的消息給出了完整的上下文 – Lempkin

回答

1

Json好嗎?

{"poles":[{"id":36,"name":"AUVERGNE"},{"id":44,"name":"Alsace"},{"id":42,"name":"Artois"}],"poleNumber":48} 

編輯:

好吧,如果你有這樣的JSON:

data = {"poles":[{"id":36,"name":"AUVERGNE"},{"id":44,"name":"Alsace"},{"id":42,"name":"Artois"}],"poleNumber":48} 

可以使data.poles完美。刪除第一個」,你有一個錯誤的JSON,所以你永遠不會解析

"{"poles":[{"id":36,"name":"AUVERGNE"},{"id":44,"name":"Alsace"},{"id":42,"name":"Artois"}],"poleNumber":48} 
+0

http://jsonlint.com/是的這是有效的 – Lempkin

+0

哦,我明白了,你的意思是我不應該得到第一個雙引號{ – Lempkin

+0

是的,確切地說。你必須刪除第一個雙「 –