我有一个对象数组应该看起来像这样......
[{"Name":"blah","Description":"blah"},{"Name":"blah2","Description":"blah2"}]
使用Javascript / jQuery,我如何获得键/值对?我尝试了很多不同的方法但无济于事。当我尝试获取长度时,它总是返回字符数并遍历每个字符而不是实际的对象数量?当我运行它时,它会返回每个字符拼出的[object Object],[object Object]的警告....
function DisplayItems(data) {
$.each(data, function () {
$.each(this, function (key, value) {
alert(value);
});
});
}
现在我看看这个,是不是我期待的对象数组?我怎样才能真正返回字符串,这样我才能真正看到它里面的内容,也许从那里开始?
**编辑:
这是我获取订单的功能(删除垃圾并向您显示警报)...我调用jQuery.Ajax并将返回的数据传递给displayOrders(data)。订单具有包含Item列表的Items的复合属性。
function displayOrders(data) {
$('#gdvOrders tbody').empty();
for (var key in data.d) {
alert(data.d[key].Items);
}
这是我传递给displayItems的内容,你在alert函数中看到的内容。我在一个表中显示Orders(隐藏包括Items的一些列),并且当他们在orders表中选择一行时,想要在另一个表中显示每个订单的Items。在上面显示的函数中,我可以写...
data.d[key].OrderId
它会正常显示。如何显示每个项目的属性?
jQuery.Ajax函数设置为content-type:'application / json; charset = utf-8',这是我从......获得订单的地方。
[WebMethod]
public static List<Order> GetOrdersByDept(Department department, Filter filter, DateTime? dateFrom = null, DateTime? dateTo = null)
{
return OrderLists.GetOrdersByDepartment((Department)department, (Filter)filter, dateFrom, dateTo);
}
答案 0 :(得分:1)
看到这是有效的:
data=[{"Name":"blah","Description":"blah"},{"Name":"blah2","Description":"blah2"}]
data.forEach(function(i,j){
console.log("Name :"+i.Name+" Description :"+i.Description);
})
答案 1 :(得分:0)
使用JavaScript,只需使用for .. in
循环
for(var i = 0; i < data.length; i++) {
var obj = data[i];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
alert(key + " = " + obj[key]);
}
}
}
答案 2 :(得分:0)
现在我看看这个,是不是我期待的对象数组?我怎样才能真正返回字符串,这样我才能真正看到它里面的内容,也许从那里开始?
如果将对象作为字符串返回,则只需提醒它即可。但是,如果您的函数正在传递一个未知对象,您始终可以将其转换回JSON字符串并提醒它,以便您可以可视化结构:
function displayItems(data) {
alert(JSON.stringify(data));
...
}
作为旁注,我将函数中的第一个字母更改为小写字母,以匹配JavaScript中函数的命名约定。
答案 3 :(得分:0)
看起来你很亲密:
function DisplayItems(data) {
console.log('data is: ', JSON.stringify(data));
$.each(data, function (key, arrayElement, index) {
console.log('arrayElement ' + index + ' is: ', JSON.stringify(arrayElement));
$.each(arrayElement, function (key, value) {
console.log('key: ' + key + ' val: ' + value);
});
});
}
根据您的数据,这给了我以下输出:
data is: [{"Name":"blah","Description":"blah"},{"Name":"blah2","Description":"blah2"}]
arrayElement undefined is: {"Name":"blah","Description":"blah"}
key: Name val: blah
key: Description val: blah
arrayElement undefined is: {"Name":"blah2","Description":"blah2"}
key: Name val: blah2
key: Description val: blah2