foreach for javascript,json array

bob*_*000 1 javascript php jquery json

我有一个看起来像这样的JSON数组:

[{"RegDate":"31-03-2011"},{"RegDate":"29-07-2011"},{"RegDate":"09-08-2011"},{"RegDate":"09-08-2011"},{"RegDate":"09-08-2011"},{"RegDate":"12-08-2011"},{"RegDate":"15-08-2011"},{"RegDate":"15-08-2011"},{"RegDate":"23-08-2011"},{"RegDate":"07-09-2011"},{"RegDate":"09-09-2011"},{"RegDate":"13-10-2011"},{"RegDate":"13-10-2011"},{"RegDate":"13-10-2011"},{"RegDate":"25-10-2011"},{"RegDate":"25-10-2011"},{"RegDate":"03-11-2011"},{"RegDate":"03-11-2011"},{"RegDate":"11-11-2011"},{"RegDate":"16-11-2011"},{"RegDate":"18-11-2011"},{"RegDate":"21-11-2011"},{"RegDate":"02-12-2011"},{"RegDate":"02-12-2011"},{"RegDate":"12-12-2011"}]
Run Code Online (Sandbox Code Playgroud)

获取此json数组的代码如下所示:

var unavailableDates1 = jQuery.parseJSON('<?php echo json_encode($noticesDates) ?>');
Run Code Online (Sandbox Code Playgroud)

我也尝试获取该数组中的所有日期(最初是一个多维数组),并将其放在一个数组中:

var unavailableDates = ["9-3-2012", "14-3-2012", "15-3-2012"]; for example
Run Code Online (Sandbox Code Playgroud)

我不确定如何做到这一点,我尝试了一个foreach但没有成功.

所有帮助将不胜感激.

Ry-*_*Ry- 7

首先,这parseJSON是不必要的,实际上是危险的.拿出来:

var unavailableDates1 = <?php echo json_encode($noticesDates) ?>;
Run Code Online (Sandbox Code Playgroud)

然后,只需使用jQuery.map:

var unavailableDates = $.map(unavailableDates1, function(item) {
    return item.RegDate;
});
Run Code Online (Sandbox Code Playgroud)

使用这样的字符串对于以下三个对象是危险的,例如:

  • {"key":"Backslash here: \\"}
  • {"key":"I'm a horse!"}
  • {"key":"Some\\backslash"}

他们分别成为:

  • SyntaxError:意外的输入结束(单个转义符转义字符串结束)
  • SyntaxError:意外的标识符(未转义的单引号突破字符串,实际上是XSS漏洞)
  • 对象
    键:"Someackslash"(\\b成为\b退格控制字符)__ proto__
    :Object

你可以再次逃脱它,但没有必要; 有效的JSON始终是一个有效的JavaScript对象,您可以信任自己的PHP,不要在其中包含注入代码.

  • 为什么parseJSON很危险? (2认同)