@Axepec

JSON.stringify на node js теряет данные?

Имеем массив:
[
[ '15:40', true, playd: true ],
[ '17:00', true, playd: true ],
[ '18:20', true, playd: true ]
]
Как только мы не имеем его, он скотина после:
fs.writeFileSync 'game.json', JSON.stringify(allDate, '' , 2)

Выдает, падла, массив без объекта playd. Скажите люди добрые, что это за ересть такая и в какой библии искать ответ.
  • Вопрос задан
  • 840 просмотров
Решения вопроса 3
potapchino
@potapchino
[
  [ '15:40', true, {playd: true} ],
  [ '17:00', true, {playd: true} ],
  [ '18:20', true, {playd: true} ]
]
Ответ написан
Комментировать
@pekc83
Почему то все согласны с тем, что данная конструкция[ '15:40', true, playd: true ] - бред
Я почему то вижу здесь массив с двумя значениями и свойством playd:
const allDate = [ '15:40', true ];
allDate['playd'] = true;
console.log(allDate); // интересно, что же выведется в консоли?
// [ '15:40', true, playd: true ]

И естественно JSON будет его парсить как обычный массив, не глядя на свойства.
Как вариант, это дело легко превратить в ассоциативный массив:
JSON.stringify(Object.assign({}, allDate));
// '{"0":"15:40","1":true,"playd":true}'
Ответ написан
jt3k
@jt3k
Фронтендер, люблю работать и получать удовольствия
Почему ты вообще удивляешься ? :) у тебяж кофе там вместо джаваскрипта.
У меня всё работает:
15803f9dafa54a2f8e84b7212c0ae5aa.png
$ node -v
v6.9.5
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
А чему ты вообще удивляешься то?
Подсказка, это в массивах задавать нельзя playd: true
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект