javascript - 从变量生成 json 对象并插入到另一个 json 对象中
问题描述
这个问题纯粹是语法。我正在尝试将生成的 JSON 对象插入到另一个 JSON 对象中。
假设我的 JSON 如下所示:
var database =
{
"john": {
"pwd": "somehashrighthere",
"mail": "example@gmail.com"
}
}
此对象在用户名下存储哈希和电子邮件。现在我想插入一个新用户:
var name = "somename";
var pwd = "hash";
var mail = "email@email.net";
如果我尝试将其插入到 json 对象中
database.name =
{
"pwd": pwd,
"mail": mail
}
我希望有一个填补空白的输出:
{
"john": {
"pwd": "r1pper",
"mail": "example@gmail.com"
},
"somenamerighthere": {
"pwd": "hash",
"mail": "email@email.net"
}
}
相反,javascipt 采用了相当字面的表达式:
{
"john": {
"pwd": "r1pper",
"mail": "example@gmail.com"
},
"name": {
"pwd": "pwd",
"mail": "mail"
}
}
我对 javascript/json 很陌生,如果你们向我解释如何动态地(!)生成 json 对象并将它们输入到更大的数据结构中,我将不胜感激。我在 SO 上找到的答案都不能以我能理解的方式解决这个问题。我是否需要对数据结构进行更改,或者我只是误解了 javascript/node.js 语法。提前致谢 :)
编辑:我很简单地解决了这个问题。原来javascript实际上将变量传递到json中,我很困惑:
{
"john": {
"pwd": "r1pper",
"mail": "example@gmail.com"
},
"name": {
"pwd": "hash",
"mail": "email@email.net"
}
}
现在我们只需要动态传递名称,这可以通过将 JSON 视为数组来解决:
database[name]
视为name
变量。
编辑2:
下面的评论是在编辑时出现的。我为此道歉。
解决方案
你应该使用database[name]
(取值name
并用作索引)
而不是database.name
(使用字符串'name'
作为索引)
推荐阅读
- c - 这些例子正确吗?
- c# - csv文件保存在软件文件夹csvhelper c#中
- reactjs - 显示在 Latex 或 asciiMath 中键入的数学公式
- python - 将底图添加到 geopandas 图
- android - android studio更改多个图像的背景图像
- compiler-errors - 为什么 MinGW 在编译时无法识别我的目标文件?
- data-structures - 什么时候实现数据结构而不是使用内置数据结构是个好主意?
- java - 我正在尝试通过 FileIO 和 ParquetIO 使用假设角色写入 Amazon S3
- python - peewee 可以删除数据库吗
- c - 使用C编程绘制PWM图