如何遍历 oData 中的每个对象?

Posted

技术标签:

【中文标题】如何遍历 oData 中的每个对象?【英文标题】:How to go through each object in oData? 【发布时间】:2016-12-28 11:58:03 【问题描述】:

当我键入以下代码语句时,我得到了附加的图像。现在我想访问每个对象内部的属性“标签”。我怎样才能遍历这些对象中的每一个并获取它们的“标签”属性?

item.getModel().oData;

我尝试了以下代码,但没有成功:

               var labelText = item.getModel().oData;

                labelText.forEach(function(entry) 
                    var c = entry.StreetName;
                );

其中一项的示例:

【问题讨论】:

【参考方案1】:
var labelText = item.getModel().oData;

                $(labelText).each(function(index,entry) 
                    var c = entry.StreetName;
                );

【讨论】:

我已附上一张带有对象展开视图的图片 然后迭代更深.. $(labelText).each(function(index,entry) $(entry).each(function(i,e) alert(e.StreetName); ) ; ); 它返回 e.streetName 未定义。 “e”仍然是一个对象列表 entry和e是一回事【参考方案2】:

因为它是Object 而不是Array,所以您应该使用Object.keys 或其他方法来访问对象的每个属性。例如:

var labelText = item.getModel().oData;
var keys = Object.keys(labelText);
for (var i = 0; i < keys.length; i++) 
    var c = labelText[keys[i]].StreetName;

【讨论】:

【参考方案3】:

一种迭代对象属性的简洁方法,使用forEachObjectkeys 方法

var labelText = item.getModel().oData;

Object.keys(labelText).forEach(function(entryName) 
    var c = labelText[entryName].StreetName;
);

【讨论】:

以上是关于如何遍历 oData 中的每个对象?的主要内容,如果未能解决你的问题,请参考以下文章

来自运行时数据层的 C# 中的动态 odata 服务

如何对来自 PowerQuery 的 OData 中的大型数据集的请求进行分页?

如何使用 OData 筛选器筛选 Azure 表存储中的布尔值?

使用 OData 进行事务性批处理

angularjs怎么遍历每个对象的属性的值

如何使用oData和JavaScript从Sharepoint 2013中的列表检索数据