Создать объект json из переменных и вставить в другой объект json - PullRequest
0 голосов
/ 26 января 2019

Этот вопрос чисто синтаксический.Я пытаюсь вставить сгенерированный объект 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:

Приведенные ниже комментарии пришли во время редактирования.Я прошу прощения за это.

1 Ответ

0 голосов
/ 26 января 2019

Вы должны использовать database[name] (принять значение name и использовать в качестве индекса)

вместо database.name (используйте строку 'name' в качестве индекса)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...