首页 > 解决方案 > 变量名附加到 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
              };

所以我有两个问题:

我在这里做错了什么?

编辑:如果我这样做

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

在 console.log 中:

toAppend: 虚拟数据;这是预期的行为

谢谢!

标签: javascriptjqueryarraysjson

解决方案


originalOrder是一个对象,因此,要获取键的数量(即“对象的长度”),您需要:

Object.keys(originalOrder).length

要添加具有 var 值的键,toAppend您需要编写:

originalOrder[toAppend] = lunghezza

推荐阅读