2010-04-29 86 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));