我在这里阅读了一些如何从对象中获取属性值的主题。
就我而言,我在Controller中有一些东西:
[HttpPost]
public ActionResult GetSomething() {
return Json( new {
data = AModel.Get()
}, JsonRequestBehavior.AllowGet );
}
模特:
public static List<Hashtable> Get() {
List<Hashtable> list = new List<Hashtable>( 0 );
Hashtable table = new Hashtable();
table.Add( "ITEM_1", "Value1" );
table.Add( "ITEM_2", "Value 32" );
list.Add( table );
table = new Hashtable();
table.Add( "ITEM_1", "Value22" );
table.Add( "ITEM_2", "Other" );
list.Add( table );
return list;
}
在Javascript中:
var test;
$.ajax({
type: "post",
url: "Action/Controller",
data: {},
dataType: "json",
async: false,
success: function (data) {
test = data.data;
},
complete: function () {
console.log(test);
});
我进入了控制台,如下图所示:
我想获取属性ITEM_1
的值并将结果发送给我:Value1,Value22。
我试过
for(var key in test) {
console.log(test[key].ITEM_1);
//console.log(test[key].ITEM1);
}
但它不起作用。
当然,我将ITEM_1
键重命名为ITEM1
(在模型中)但结果相同:undefined
但在控制台中我看到了所有对象的值。
请帮帮我。
答案 0 :(得分:3)
test
是一个数组,而不是一个对象。循环遍历数组,如:
var testLength = test.length; //caching length, performance benefit
i, item1;
for(i=0;i<testLength;i++){
item1 = test[i].Properties.ITEM1;
}