javascript - 变量名附加到 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: 虚拟数据;这是预期的行为
谢谢!
解决方案
originalOrder
是一个对象,因此,要获取键的数量(即“对象的长度”),您需要:
Object.keys(originalOrder).length
要添加具有 var 值的键,toAppend
您需要编写:
originalOrder[toAppend] = lunghezza
推荐阅读
- android - Android Studio - 升级 gradle ':app:checkReleaseDuplicateClasses' 任务失败后
- java - 排除的嵌入式 tomcat 仍然存在于 lib-provided 文件夹中
- javascript - 如果语句在 https 获取响应中移过 [ ]
- llvm - 执行带有分段错误的 LLVM 代码结果
- c# - 声明授权在 Asp .Net Core 中拒绝访问
- sml - 这里的“isSome old(tl dates)”是什么意思;为什么“最旧(tl 日期)”有一个选项类型?
- python - 熊猫爆炸用空单元格创建行
- r - 来自未标记矩阵的R中的多个箱线图?
- python - 博彩公司用硒刮擦
- kubernetes - 无法从其他 pod 命中 kubernetes 集群中的 pod,但可以从入口