#javascript #json #object
#javascript #json #объект
Вопрос:
У меня есть этот образец строки, который я хочу проанализировать как объект
const payload = "{"teamIds":[584,585,586]}";
console.log(JSON.parse(payload))
Однако результат автоматически добавляет индексы:
teamIds:
0: 584,
1: 585,
2: 586
Как мне избавиться от индексов в этом случае и просто сохранить [584,585,586]
как есть?
Редактировать
Исходя из фона PHP, я подумал, что это возможно. Тем не менее, спасибо вам за всю вашу помощь.
Комментарии:
1. То, что вы видите, является особенностью консоли. функция регистрации; все массивы в javascript будут иметь индекс, связанный с каждым числом. То, что вы видите, — это всего лишь одна визуализация этого.
2. Когда вы выполняете
JSON.parse
, вы просите превратить вашу строку в объект JSON. Если вы хотите,[584,585,586]
чтобы результирующий объект был представлен в виде строки, вам нужно заключить его в двойные / одинарные кавычки вокруг исходной строки.
Ответ №1:
Вы не можете, так работают массивы, у них должны быть индексы для значений, которые устанавливаются автоматически, если вы не предоставляете какие-либо из своих. Вот как это работает, в javascript вы можете назначить индекс, но тогда он становится объектом, а не массивом, но в массиве не может быть значения без индекса.
Комментарии:
1. Я думаю, вы имеете в виду, что это становится объектом.
2. JSON — это объект, бессмысленно говорить, что объект JSON, а JSON — сокращение от обозначения объектов JavaScript.
3. Ключевое слово — «нотация». JSON — это строка, которую вы создаете из объекта или массива при вызове
JSON.stringify()
.
Ответ №2:
const payload = "{"teamIds":[584,585,586]}";
console.log('[' JSON.parse(payload).teamIds.toString() ']')