json后面附加了变量名,而不是变量值



我从我编写的API中得到一个json。这个json包含一些值,其中一个值应该附加到另一个json中。要将数据附加到的json如下:

originalOrder = {
"nome": 1,
"cognome": 2,
"mail": 3,
"telefono": 4,
"cf": 5,
"data": 6,
"ora": 7,
"cellit": 8,
"cellex": 9
};

我需要附加的数据是:

var toAppend = data.name;

如果我回显toAppend值,它会显示正确的值。例如,toAppend会回显dummyData。我希望json在最后:

originalOrder = {
"nome": 1,
"cognome": 2,
"mail": 3,
"telefono": 4,
"cf": 5,
"data": 6,
"ora": 7,
"cellit": 8,
"cellex": 9,
"dummyData": 10
};

所以我还计算了数组的长度:

var lunghezza = parseInt(originalOrder.length);
lunghezza = lunghezza +2;

然后我将新项目添加到数组中:

originalOrder.toAppend=lunghezza;

但阵列最终是这样的:

originalOrder = {
"nome": 1,
"cognome": 2,
"mail": 3,
"telefono": 4,
"cf": 5,
"data": 6,
"ora": 7,
"cellit": 8,
"cellex": 9,
"toAppend": NaN
};

所以我有两个问题:

  • 我得到的是变量名而不是变量值
  • 我得到的不是一个数字,而是10(我也试图用parseInt强制它,但似乎没有运气(

我做错了什么?

编辑:如果我做

var toAppend=data.nome;console.log('toAppend:'+toAppend(;

在console.log中:

toAppend:dummyData;这就是预期的行为

谢谢!

originalOrder是一个对象,因此,要获得键的数量(即"对象的长度"(,您需要:

Object.keys(originalOrder).length

要添加具有vartoAppend值的密钥,您需要写入:

originalOrder[toAppend] = lunghezza

要使用变量值作为对象的键,可以在javascript中使用方括号。

const obj = {
"hello": "world"
};
const key = "value";
obj[key] = "any value";
console.log(obj)

将打印

{
"hello": "world",
"value": "any value"
}

此外,不能在对象上使用length属性。但是,您可以获取对象的关键帧列表,然后获取长度。

console.log(Object.keys(obj).length);

将打印

2

希望这能帮助

最新更新