2

我有一个类似的 JSON 对象;

 var data = {
 Name : "test name",
 Type : "test type",
 VendorInfo :{
               FirstName : "Vendor First Name",
               LastName : "Vendor Last Name",
               Address : "Vendor Address",
               City : "Vendor City",
               ZipCode : "Zip"
             }
 }

现在分别我想保留有关如何访问数据变量中的字段的信息

var accessInfo=[
    { fieldName : "Name", actionName : "Edit" },
    { fieldName : "Type", actionName : "Edit" },
    :
    :etc..
 ]

现在在我的javascript中,我可以通过for循环遍历accessInfo数组,例如;

for(var i=0;i<accessInfo.length;i++){
data[accessInfo[i].fieldName] = "changed field";
}

这适用于顶级字段,但我无法弄清楚如何访问层次结构中较低的字段..如 data.VendorInfo.FirstName、data.VendorInfo.LastName 等。

这是可能吗?我尝试输入“VendorInfo.FirstName”和 [VendorInfo][FirstName],但不行..

4

1 回答 1

0

你只需要解析你的访问规范来遍历目标对象。你可以使用这样的函数:

function getProp(obj, propName) {
   var prop;
   var props = propName.split('.');
   for (var i = 0; i < props.length; i++) {
      prop = obj[props[i]];
      if (typeof prop === 'null' || typeof prop === 'undefined') return prop;
   }
  return prop;
}
于 2012-09-03T15:47:50.920 回答