使用非有效标识符的键创建对象文字

时间:2018-05-23 10:14:42

标签: javascript javascript-objects

在我的对象文字中,我想创建不是有效标识符的键,以便使用JavaScript生成类似于图片中的JSON文件。

是否可以像下面那样创建对象?



var objet = {
  targets: [
    new Stage(),
    {
      isStage: false,
      name: "Sprite1",
      blocks: {
        o7d.+f~]6/Bs|=|c/F(=: "Hello"
      }
    }
  ]
};




这就是JSON文件的样子:

JSON file

3 个答案:

答案 0 :(得分:0)

您可以使用ES6功能objet litteral动态键:

const illegalKey = 'o7d.+f~]6/Bs|=|c/F(=';
...
blocks: {
    [illegalKey]: "Hello"
}

或者只是:

blocks: {
    'o7d.+f~]6/Bs|=|c/F(=': "Hello"
}

答案 1 :(得分:0)

是的,你可以:



const data = {
  blocks: {
    "o7d.+f~]6/Bs|=|c/F(=": "Hello"
  }
}

console.log(data)




但是请注意你究竟在做什么,因为你用这个键命名会失去可读性。

答案 2 :(得分:0)

为了理解目的,我选择了一个对象的子集。

您可以尝试以下



var blocks = {
  "o7d.+f~]6/Bs|=|c/F(=": "Hello" // surround key with quotes
};

console.log(blocks["o7d.+f~]6/Bs|=|c/F(="]); // use bracket notation to fetch