2015-11-22 35 views
2

我有一個jQuery的功能,發送一些數據到一個方法,並從PHP接收簡單的json(json返回通過get發送的數據)。Json解析正確的方式,當你有一個單一的值

$("#filter").submit(function() { 
     $.ajax({           
      data:$("form").serialize(),     
      type: $(this).attr("get"),     
      url:"get.php",        
      success: function(response){     
       $("#rez").html(response);    
      } 
     }); 
     return false; 
    }); 

這是JSON我得到

{"list1":["bike","car","bus"],"list2":["1 seat","4 seas","10 seats"],"list3":["cheap","medium","expensive"],"list4":["green energy","bio","petrol"]} 

我試圖來遍歷它是這樣的:

$.each(response, function(index, val) 
       { 
        alert(response[index]); 
        }); 

此外,嘗試這樣做:

alert(val); 

哪有我遍歷它並做出一個簡單的警報? 目標是將每個項目追加到「#rez」段落。但就目前而言,我只是想通過json進行迭代,並且無法弄清楚。

也! 我有另一個像這樣的json:["first val","second val"]我該如何迭代這個?試過上述方法,沒有工作。

回答

2

在您開始循環,你必須解析JSON stringObject,在這種情況下,你可以使用像這樣做:

var obj = JSON && JSON.parse(response) || $.parseJSON(response); 

$.each(obj, function(index, val) { 
    // ... 
}); 

如果不提供數據類型一樣dataType:"json"在你的ajax params對象,那麼你必須明確地解析字符串到一個對象。 Read more abour $.parseJSON here

+0

是的,這是它沒有工作的原因。非常感謝!但我還有一個問題。如果我有一個PHP,使選擇(選擇類型,nrSeats,價格,汽車燃料) 如何在php中正確創建json? '$ response [0] .type =「car」;'並且爲所有屬性做? –

+0

嘗試'console.log(response)'並在瀏覽器控制檯中檢查結果。 –

+0

「解析錯誤:語法錯誤,意想不到'='在第5行(這是第5行:'$ response [0] .type =」car「;') –

0

我有類似的問題,用這個:

for (var key in someObject) { 
    if (someObject.hasOwnProperty(key)) { 
    var something = someObject[key]; 
    console.log(something) 
    } 
} 

基本上使用 「爲」 -loop這裏。

+0

沒有'JSON字符串'不能迭代,直到它變成一個'對象'。 –