我得到了一个这样的JSON。我想获取elem tActivitats并复制到一个数组中:
[
{
"identificador": "A462D996C3DDF4C94A3BF1A23EBF2906",
"num_grup": 1,
"activitats": "1",
"tActivitats": [
{
"mostrIdioma": "S",
"calendariWeb": "S",
"nomActiv": "Visita Museu",
"codiActiv": "1",
"tipus": "S",
"idioma": "0"
}
]
}
]对于json的每个元素:
var tActivitatsArray = new Array();
$.post('../ServletJson', {
elem: 'accesWeb',
sessionId: "<%=sessionActual%>"
}, function(data) {
$.each(data, function(t, elem) {
//dostuff
tActivitatsArray = elem.tActivitats;
//dostuff
});
});然后我有一个函数,在这个函数中我传递了elem长度,然后我尝试迭代,得到的错误是无法读取未定义的属性‘tActviitatsArray’
for (var i = 0; i < tActivitatsArray.length; i++) {
console.log("test" + tActivitatsArray[i].nomActiv);
}console.log(JSON.stringify(data));这就是数据(JSON.stringify(console.log));结果:
[
{
"identificador":"1AE2886120F41BBC0F76567993EF76E0",
"num_grup":1,
"activitats":"1",
"horari":"sessio_1_13_1200_0_1345",
"total":8.5,
"num_pers":"3",
"tarifa":"tarifa_1_3_1",
"preu":"8.5#1~0#1",
"butaques":null,
"nomSala":"",
"numerada":"false",
"promo":"",
"referencia":"100249790",
"dataVisita":"22/05/2020",
"combinada":"",
"article":null,
"precioTemp":[
{
"codActiv":"1",
"codTarifa":"1",
"precio":"8.50",
"dtePromo":"0",
"dteEuro":"%",
"total":25.5,
"tipus":"normal"
}
],
"tActivitats":[
{
"mostrIdioma":"S",
"calendariWeb":"S",
"nomActiv":"Visita Museu",
"codiActiv":"1",
"tipus":"S",
"idioma":"0"
}
],
"tTarifa":[
{
"codTarifa":"1",
"nomTarifa":"General"
},
{
"codTarifa":"1",
"nomTarifa":"General"
}
]
},
{
"identificador":"1AE2886120F41BBC0F76567993EF76E0",
"num_grup":2,
"activitats":"1",
"horari":"sessio_1_1_1000_0_1059",
"total":8.5,
"num_pers":"3",
"tarifa":"tarifa_1_3_1",
"preu":"8.5#1~0#1",
"butaques":null,
"nomSala":"",
"numerada":"false",
"promo":"",
"referencia":"100249790",
"dataVisita":"23/05/2020",
"combinada":"",
"article":null,
"precioTemp":[
{
"codActiv":"1",
"codTarifa":"1",
"precio":"8.50",
"dtePromo":"0",
"dteEuro":"%",
"total":25.5,
"tipus":"normal"
}
],
"tActivitats":[
{
"mostrIdioma":"S",
"calendariWeb":"S",
"nomActiv":"Visita Museu",
"codiActiv":"1",
"tipus":"S",
"idioma":"0"
}
],
"tTarifa":[
{
"codTarifa":"1",
"nomTarifa":"General"
},
{
"codTarifa":"1",
"nomTarifa":"General"
}
]
}
]发布于 2020-05-21 16:58:56
三件事;
在值为initialized.
tActivitats tActivitatsArray不是undefined in response。发布于 2020-05-21 16:59:43
看起来后端是一个ASP.NET服务器。我可以从<%=sessionActual%>看出来。
在这种情况下,$.post成功函数将接收一个json对象data,该对象包含一个保存来自服务器的请求资源的子元素d。
更改此行:
$.each(data,function(t,elem) {
...
}进入:
$.each( data.d ,function(t,elem){
...
}发布于 2020-05-21 17:15:49
好吧..。逻辑表明,如果数据被接收并正确转换为数组,则它应该起作用:
var a = [
{
"mostrIdioma": "S",
"calendariWeb": "S",
"nomActiv": "Visita Museu",
"codiActiv": "1",
"tipus": "S",
"idioma": "0"
}
];
for (var i = 0; i < a.length; i++) {
console.log("test: " + a[i].nomActiv);
}test: Visita Museu你能在回调中记录JSON.stringify(data)的输出吗?顺便说一句,您正在覆盖each循环中的tActivitatsArray。您应该推送/合并,而不是覆盖该值。我想这是你的主意,对吧?
https://stackoverflow.com/questions/61930721
复制相似问题