Задать вопрос
@VelkinVV

Как перебрать многомерный объект JS?

Необходимо перебрать json и вывести в виде выпадающего списка.
Перебираю через map первый уровень нормально, а вот на следующий перейти не могу. Постоянно ошибки, хотя перепробовал уже кучу вариантов
"json": {
    "email": {
      "record": {
        "A": [
          "25.654.654.986"
        ],
        "B": [],
        "C": [
          " example.com 544444 988888 65555555"
        ],
        "D": []
      }
    },
    "www": {
      "record": {
        "BC": [
          "25.654.654.986"
        ],
        "BBBB": []
      }
    }
  },


{ dataJson.map( ( item, index ) => (	<li> { Object.keys( item )[ 0 ] } </li> ))}


==================================
P.s.
решил вопрос так:
<ul className='sub-level'>
	<li>
		@
			<ul className='sub-level'>
				{ dataJson[ 0 ] ? (
					Object.entries( dataJson[ 0 ].email.record).map(([key, value]) => (
						<li key={key}>{ key }: { value }</li>
					))
				) : '' }
			</ul>
	</li>
	<li>
		www
				<ul className='sub-level'>
					{ dataJson[ 1 ] ? (Object.entries( dataJson[ 1 ].www.record).map(([key, value]) => (
						    <li key={ key }>{ key }: { value }</li>
						))
					) : '' }
				</ul>
	</li>
</ul>
  • Вопрос задан
  • 956 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
black1277
@black1277
Вольный стрелок
json это строка - её сначала надо распарсить:
let obj = JSON.parse(stroka)
у вас получится объект содержащий объекты, а мапом перебираются массивы. Используйте Object.entries(obj) для получения массива пар [key, value], пребирайте мапом и т.д. до нужного уровня вложенности
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы