假设我有这个对象
var io={"NAME":"Battery For Alarm Panel","CODE":"POWER MAX","OWN":"ONM"}
我可以像下面那样访问
io['NAME'] or io['CODE'] etc.
但是如果想要创建另一个对象,那么我如何访问obj
如下面的代码就无法使用错误Uncaught SyntaxError: Unexpected token [
detailObj=
{
io['NAME']:
{
io['CODE']:
{
io['OWN']:"12"
}
}
}
我需要在io
对象中进行哪些更改才能创建detailObj
答案 0 :(得分:1)
object["property"]
语法用于访问对象属性,并且与对象创建的语法无关。如果要访问几个级别的对象,请按照以下示例操作:
var basket = {
box: {
mobilePhone: "mobilePhone"
}
}
要访问购物篮的mobilePhone属性,您可以使用:basket.box.mobilePhone
或basket["box"]["mobilePhone"]
答案 1 :(得分:1)
您不能将JSON语法与动态密钥一起使用。
你有很多解决方案:
var detailObj = {};
detailObj[io.NAME] = {};
detailObj[io.NAME][io.CODE] = {};
detailObj[io.NAME][io.CODE][io.OWN] = "12";
或
var detailObj = {};
var detailObjNAME = (detailObj[io.NAME] = {});
var detailObjCODE = (detailObjName[io.CODE] = {});
detailObjCODE[io.OWN] = "12";
或
var detailObj = {};
((detailObj[io.NAME] = {})[io.CODE] = {})[io.OWN] = "12";
答案 2 :(得分:0)
您不能使用对象声明中的变量声明属性名称来声明这样的对象。你必须像这样创建对象:
detailObj = {};
detailObj[io['NAME']] = {};
detailObj[io['NAME']][io['CODE']] = {};
detailObj[io['NAME']][io['CODE']][io['OWN']] = "12";
答案 3 :(得分:0)
var io={"NAME":"Battery For Alarm Panel","CODE":"POWER MAX","OWN":"ONM"};
var detailObj = {};
detailObj[io['NAME']] = {};
detailObj[io['NAME']][io['CODE']] = {};
detailObj[io['NAME']][io['CODE']][io['OWN']] = "12";