【发布时间】:2017-10-02 15:14:32
【问题描述】:
我有一个 MVC 应用程序,其中控制器获取对象列表,使用JavaScriptSerializer() 对其进行序列化,创建一个传递给客户端视图的 JSON 对象。
由于某种原因,当我尝试使用范围 for 循环遍历对象时,每个对象都是未定义的,但是当我使用常规 for 循环遍历对象并使用方括号中的当前迭代值索引对象时,我可以访问每个子对象(即,这有效for(var i = 0; i < jsonObj.length; i++) 与此for(var sub in jsonObj)。为什么在这种情况下范围 for 循环不起作用?
JSON 对象:
[
"Obj1": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
},
"Obj2": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
},
"Obj3": {
"Value1": "3454234",
"Value2": "345643564",
"Value3": "665445",
"Value4": "True"
}
]
编辑
for(var sub in finalJson){
console.log(sub["Value1"])
}
【问题讨论】:
-
尝试
for(var sub of jsonObj)in没有达到您的预期 ->A different property name is assigned to variable on each iteration.所以第一个元素的属性名称是0,因为这就是数组。 -
@Keith 请参考 OP。
-
请告诉我们你尝试了什么。
-
你如何在 for 循环中调用每个 jsonObj?
-
@loremIpsum1771 请原谅?
标签: javascript c# json asp.net-mvc