如何使用其他地方指定的访问信息访问嵌套的json对象,而不使用eval或迭代



我有一个类似的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 中的字段的信息

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";
}

这适用于顶级字段,但我不知道如何访问层次结构中较低级别的字段。。类似数据。供应商信息。第一个名称,数据。VendorInfo.LastName等

这有可能吗?我试着输入"VendorInfo.FirstName"和[VendorInfo][FirstName],但没有成功。。

您只需要解析访问规范即可遍历目标对象。你可以使用这样的功能:

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;
}

相关内容

  • 没有找到相关文章

最新更新