变量名称附加到json而不是变量值

时间:2020-04-07 08:41:46

标签: javascript jquery arrays json

我从编写的API中获取了json。此json包含一些值,并且其中一个应附加到另一个json。 要将数据附加到的json如下:

document.getElementById('text').focus();
document.execCommand('paste');

我需要附加的数据是:

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

,如果我回显toAppend值,它将显示正确的值。例如说toAppend回显了dummyData。我希望json在末尾:

var toAppend = data.name;

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

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;

所以我有两个问题:

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

我在做什么错了?

编辑: 如果可以的话

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

在console.log中:

toAppend:dummyData; 这是预期的行为

谢谢!

2 个答案:

答案 0 :(得分:0)

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

Object.keys(originalOrder).length

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

originalOrder[toAppend] = lunghezza

答案 1 :(得分:0)

要将变量值用作对象的键,可以在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

希望这会有所帮助

相关问题