2010-04-29 77 views
1

TLDR一個複雜的陣列:解析與jQuery的的getJSON

  1. 入門this question簡化它得到了一些它的工作,並在這裏繼續之後。
  2. 我需要'GET'JSON數組
  3. 格式正確,併爲數組中的每個將它放在相應的DIV中。
  4. ??
  5. 它的工作原理。

這是從一個this question隨訪,以簡化並繼續。

我需要從數組中得到一些複雜的JSON數據。有了它,我需要標題和價值。我這樣做的原因是因爲我會知道數組被調用的內容,而不是它內部生成的數據。

比方說這個新的數組如下所示:

{"Days": 
[{"day": "Sunday", "time": "10.00"}, 
{"day": "Monday", "time": "12.00"}, 
{"day": "Tuesday", "time": "09.00"}, 
{"day": "Wednesday", "time": "10.00"}, 
{"day": "Thursday", "time": "02.00"}, 
{"day": "Friday", "time": "05.00"}, 
{"day": "Saturday", "time": "08.00"} 
]} 

固定拜(馬太福音富蘭琛)

我需要它來獲取週日& 10.00以及同所有其他。

我的代碼,此刻來解析這個如下:

$.getJSON(url, 
    function(data){ 
     $.each(data, function(i,item){ 
     $('.testfield').append('<p>' + item + '</p>'); 
     }); 
    }); 

沒有在每個日期添加的時候,它會分析數據如下:

Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday 

隨着加入倍數組中的日子Firebug不再將其識別爲JSON字符串。所以我猜測我在這裏格式化了一些錯誤。另外,我每天需要&時間要在新行我認爲

$('.testfield').append('<p>' + item + '</p>' + '<br />'); 

就申請了每一個到一個新的生產線,但沒有奏效。

  1. 我該如何讓每一天或物品放在一個新的線上?
  2. 我如何獲得$ getjson來將數據正確解析日期及其值,轉換爲div?

回答

2

試試這個(格式化JSON - 下一次檢查JSON與JSONLint):

{ 
    "Days": [ 
     { 
      "Sunday": "10.00", 
      "Monday": "12.00", 
      "Tuesday": "09.00", 
      "Wednesday": "10.00", 
      "Thursday": "02.00", 
      "Friday": "05.00", 
      "Saturday": "08.00" 
     } 
    ] 
} 

腳本一起工作它:

$.getJSON(url, function(data){ 
    $.each(data.Days[0], function(key,value){ 
    $('.testfield').append('<p>' + key + ' : ' + value + '</p>'); 
    }); 
}); 
+0

哈哈JSONLint現在絕對保存下來:) – Sphvn 2010-04-29 05:57:04

+0

完美運作。謝謝 – Sphvn 2010-04-29 05:58:10

+0

現在我確定我的JSON來自服務器端的樂趣是格式正確^^ – Sphvn 2010-04-29 05:58:31

1

這不是有效的JSON。這樣做:

{"Days": 
[{"day": "Sunday", "time": "10.00"}, 
{"day": "Monday", "time": "12.00"}, 
{"day": "Tuesday", "time": "09.00"}, 
{"day": "Wednesday", "time": "10.00"}, 
{"day": "Thursday", "time": "02.00"}, 
{"day": "Friday", "time": "05.00"}, 
{"day": "Saturday", "time": "08.00"} 
]} 

始終使用JSONLint或其他驗證檢查你的語法。

+0

格式化它如上我得到[對象對象]。因爲我在「天」內請求所有 – Sphvn 2010-04-29 05:50:14

+0

是的,JSON是JavaScript文字語法的子集。所以這也是一個有效的對象文字。 – 2010-04-29 05:51:49

+0

一直在這工作了一段時間,現在讓我的頭有點頭暈:P非常感謝您的幫助。 – Sphvn 2010-04-29 05:53:57

0

有點偏離主題,但如果您不確定內容,應該使用安全的方法將數據插入DOM。否則,你的代碼有一個XSS漏洞。

除了作爲安全問題之外,任何數據(如「Foo Bar <[email protected]>」)都不會按照您(可能)的需要進行渲染。

例如,你可以使用jQuery的文本()方法:

$('.testfield').append($('<p></p>').text(item));