Как добавлять элементы в подобный JSON?
Пытаюсь добавить данные в JSON такого вида:
{
"users": {
"admins": [{
"Alex": {
"login": "alex123",
"password": "1234"
},
"Sam": {
"login": "sami",
"password": "4321"
}
}],
"guest": [{
"Lisa": {
"login": "lsss",
"password": "qwerty"
},
"John": {
"login": "joaa",
"password": "asd321"
}
}]
}
}
Задача такова, что помимо пользователя нужно добавлять и категорию юзера если она отсутствует (admins, users и тд.). Пытался сделать вот так:
let data = JSON.parse(file)
data.users[0][category] = []
Но ничего путного из этого не вышло.
А если категория имеется то я просто заношу новую запись методом push()
В общем много чего перепробовал, выходит либо полностью удалить данные в категории и оставить только новые, либо все сделать как надо, но в таком случае категории нужно писать в файл заранее. Подскажите как решить такую задачку?
Ответы (1 шт):
users это объект, категории - его ключи. Вы почему-то пытаетесь обратиться к users[0].
все что требуется - прежде чем добавлять юзера - проверить есть ли ключ-категория у объекта. Если нет, то создаете ее и инициализируете пустым массивом.
if(!data.hasOwnProperty(category)){
data[category] = [];
}
Дальше продложаете работу как обычно - добавляете юзера с помощью push