Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Записать данные из переменных в локальный JSON (https://javascript.ru/forum/misc/76442-zapisat-dannye-iz-peremennykh-v-lokalnyjj-json.html)

CryNet 11.01.2019 18:47

Записать данные из переменных в локальный JSON
 
Есть локальный JSON вида:
Код:

{
  "1": {
    "title":"My Lesons",
    "autor":"CryNet",
    "date":"10.01.19",
    "text":"Текст"
  },

  "2": {
    "title":"My articles",
    "autor":"CryNet",
    "date":"09.01.19",
    "text":"Текст текст"
  }
  ...
}

JSON получен по AJAX. Мне необходимо в этот JSON записать данные из нескольких переменных:
var head = document.getElementById('setHead').value;
    var date = document.getElementById('setDate').value;
    var autor = document.getElementById('setAutor').value;
    var text = document.getElementById('setText').value;

Как мне записать данные из переменных в конец локального JSON?

рони 11.01.2019 19:12

CryNet,
head это title?

CryNet 11.01.2019 19:16

Название статьи

рони 11.01.2019 19:30

CryNet,
var data = {
  "1": {
    "title":"My Lesons",
    "autor":"CryNet",
    "date":"10.01.19",
    "text":"Текст"
  },

  "2": {
    "title":"My articles",
    "autor":"CryNet",
    "date":"09.01.19",
    "text":"Текст текст"
  }

}
var index = Object.keys.length;
data[index] = { "title": head,
    "autor": autor,
    "date": date,
    "text": text}

CryNet 11.01.2019 22:50

Цитата:

Сообщение от рони (Сообщение 501791)
рони,
...

Спасибо больше за ответ, но что-то не работает...

Я создал проект на codepen, чтобы было понятно: ссылка

var index = Object.keys.length;
    data[index] = { "title": head,
        "autor": autor,
        "date": date,
        "text": text
    }

В переменной index хранится 1, хотя записей две. При срабатывании кода данные не записываются :)

рони 11.01.2019 23:03

CryNet,
var index = Object.keys.length + 1;

CryNet 11.01.2019 23:34

Цитата:

Сообщение от рони (Сообщение 501802)
CryNet,
var index = Object.keys.length + 1;

Та проблема не в этом. Даже если вручную прописать незанятый ключ. Но ваш способ я тоже пробовал

рони 12.01.2019 00:01

CryNet,
пропустил скобки
var index = Object.keys(data).length + 1;

рони 12.01.2019 00:02

CryNet,
<script>
var data = {
  "1": {
    "title":"My Lesons",
    "autor":"CryNet",
    "date":"10.01.19",
    "text":"Текст"
  },

  "2": {
    "title":"My articles",
    "autor":"CryNet",
    "date":"09.01.19",
    "text":"Текст текст"
  }

}
var head = autor = date = text = "test";
var index = Object.keys(data).length + 1;
data[index] = { "title": head,
    "autor": autor,
    "date": date,
    "text": text}


document.write(JSON.stringify(data, null, 4))
</script>

CryNet 12.01.2019 19:30

Спасибо :)


Часовой пояс GMT +3, время: 16:51.