【发布时间】:2018-09-23 09:24:26
【问题描述】:
我需要在javascript中创建一个对象,类似于下面的结构:
{
'1': {
'key1-1': 'val1-1',
'key-1-2': 'val1-2'
},
'2': {
'key1-1': 'val1-1',
'key1-2': 'val1-2'
}
}
我试过 Object();但关键仍然是变量的文字名称。
> var myObj = new Object();
> for (var i = 1; i< 5; i++) {
... myObj.i = {'key1-1': 'val1-1',
..... 'key-1-2': 'val1-2'}
... }
> console.log(myObj)
{ i: { 'key1-1': 'val1-1', 'key-1-2': 'val1-2' } }
尝试将变量 i 转换为字符串,但还是一样。
> for (var i = 1; i< 5; i++) {
... var iStr = i.toString();
... myObj.iStr = {'key1-1': 'val1-1',
..... 'key-1-2': 'val1-2'}
... }
> console.log(myObj)
{ iStr: { 'key1-1': 'val1-1', 'key-1-2': 'val1-2' } }
我们如何创建一个带有数字字符串键的 json 对象,例如 '1'、'2'、'3' ...
【问题讨论】:
-
从
myObj.i更新到myObj[i] -
字符串转换自动发生。甚至数组索引也是字符串。您使用错误的语法来定义键。
-
不存在 json 对象。你想要一个对象?然后是Javascript。您想要该对象的字符串表示形式吗?然后是 JSON。
标签: javascript