Php foreach用于javascript、json数组
我有一个JSON数组,如下所示:Php foreach用于javascript、json数组,php,javascript,jquery,json,Php,Javascript,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"},{"RegDa
[{"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"}]
获取此json数组的代码如下所示:
var unavailableDates1 = jQuery.parseJSON('<?php echo json_encode($noticesDates) ?>');
我不确定如何做到这一点,我已经尝试了foreach,但没有成功
感谢您的帮助。var justDates=[];
var justDates = [];
for (var i=0; i < unavailableDates1.length; i++) {
justDates.push(unavailableDates1[i]['RegDate']);
}
对于(变量i=0;i
每个对象({'RegDate:'date'})都是javascript数组中的一个项。要获取项目,请使用数字索引。因此,要获得第一项,将是数组[0],这将为您提供{“RegDate”:“31-03-2011”}
。然后,要获取特定的日期字符串,只需使用键theArray[0]['RegDate']
!。因此,由于您希望遍历列表中的每个成员,因此应该使用.length
获取列表长度
For循环通常用于这种类型的迭代,而不用于..in。因为for in可以访问不需要的属性 var justDates=[];
对于(变量i=0;i
每个对象({'RegDate:'date'})都是javascript数组中的一个项。要获取项目,请使用数字索引。因此,要获得第一项,将是数组[0],这将为您提供{“RegDate”:“31-03-2011”}
。然后,要获取特定的日期字符串,只需使用键theArray[0]['RegDate']
!。因此,由于您希望遍历列表中的每个成员,因此应该使用.length
获取列表长度
For循环通常用于这种类型的迭代,而不用于..in。因为for in可以访问不需要的属性 首先,
parseJSON
是不必要的,实际上是危险的。把它拿出来:
var unavailableDates1 = <?php echo json_encode($noticesDates) ?>;
使用这样的字符串对以下三个对象是危险的,例如:
{“key”:“此处反斜杠:\\”}
{“key”:“我是一匹马!”
{“key”:“Some\\backslash”}
- SyntaxError:输入的意外结尾(单个转义符转义字符串的结尾)
- SyntaxError:意外标识符(未替换的单引号从字符串中断开,实际上是XSS漏洞)
- 对象
键:“Someackslash”(
成为\\b
退格控制字符)\b
__原型:对象
你可以再次逃避,但没有必要;valid JSON始终是一个有效的JavaScript对象,您可以相信您自己的PHP不会在其中包含注入代码。首先,
parseJSON
是不必要的,实际上是危险的。把它拿出来:
var unavailableDates1 = <?php echo json_encode($noticesDates) ?>;
for(var i=0;i<unavailableDates.length;i++) {
unavailableDates[i] = unavailableDates[i].RegDate;
}
使用这样的字符串对以下三个对象是危险的,例如:
{“key”:“此处反斜杠:\\”}
{“key”:“我是一匹马!”
{“key”:“Some\\backslash”}
- SyntaxError:输入的意外结尾(单个转义符转义字符串的结尾)
- SyntaxError:意外标识符(未替换的单引号从字符串中断开,实际上是XSS漏洞)
- 对象
键:“Someackslash”(
成为\\b
退格控制字符)\b
__原型:对象
for(var i=0;ifor(var i=0;i看一看。
for(var i=0;i<unavailableDates.length;i++) {
unavailableDates[i] = unavailableDates[i].RegDate;
}
您可以执行以下操作:
dates = new Array();
unavailableDates1.forEach(function (obj){
dates.push(obj.RegDate);
};
看一看。
您可以执行以下操作:
dates = new Array();
unavailableDates1.forEach(function (obj){
dates.push(obj.RegDate);
};
请尝试以下操作:
var unavailableDates1 = jQuery.parseJSON('<?php echo json_encode($noticesDates) ?>');
JavaScript:
var x = [{"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"}];
var ary = new Array();
for (foo in x) {
ary.push(x[foo].RegDate);
}
console.log(ary);
尝试以下操作:
var unavailableDates1 = jQuery.parseJSON('<?php echo json_encode($noticesDates) ?>');
JavaScript:
var x = [{"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"}];
var ary = new Array();
for (foo in x) {
ary.push(x[foo].RegDate);
}
console.log(ary);
我注意到您在这里也标记了jquery,因此,这里有一个jquery解决方案:
我注意到您在这里也标记了jquery,因此,这里有一个jquery解决方案:
试试这个,可能有用
var unavailableDates = [];
for(var i = 0; i < unavailableDates1.length; i++){
unavailableDates[i] = unavailableDates1[i].RegDate;
}
var不可用日期=[];
对于(变量i=0;i
试试这个,可能有用
var unavailableDates = [];
for(var i = 0; i < unavailableDates1.length; i++){
unavailableDates[i] = unavailableDates1[i].RegDate;
}
var不可用日期=[];
对于(变量i=0;i 布莱斯:考虑到我有一个带反斜杠的数据。PHP像:<代码> {“BLAH”:“一些\反斜杠”} /代码>它进入字符串:“<代码>”{“BLAH”:“一些\反斜杠”}。“
结果是一个具有属性blah
的对象,该属性不包含反斜杠和b
,而是一个反斜杠控制字符。如果反斜杠恰好位于字符串末尾,则所有内容都会爆炸。如果JSON中的任何位置都有撇号,则所有内容都会爆炸。@minitech不是paresJS的重点如何优雅地处理这类问题?除此之外,我们都知道eval是邪恶的,等等。但当你控制数据时,人们对它的使用反应过度(不是说你不应该尽可能避免它,而是…)我同意PaSeJSON是完全不必要的。@ MiTiCH + 1对于这些伟大的例子来说,我认为你的意思是恶意的事情会发生。”布莱斯:考虑到我里面有一个反斜杠的数据。PHP逃脱了:<代码> {“BLAH”:“一些\反斜杠”} /代码>它进入字符串:<代码> {“BLAH”):“某些\\反斜杠”}“
结果是一个具有属性blah
的对象,该属性不包含反斜杠和b
,而是一个反斜杠控制字符。如果反斜杠恰好位于字符串末尾,则所有内容都会爆炸。如果JSON中的任何位置都有撇号,则所有内容都会爆炸。@minitech不是paresJS的重点如何优雅地处理这类问题?除此之外,我们都知道eval是邪恶的,等等。但当你控制数据时,人们对它的使用反应过度(不是说你应该这样做)