Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

182
Visualizações
¿Cuál es el mejor enfoque para convertir entre listas HTML de varios niveles con profundidad arbitraria y JSON?

Estoy buscando una forma de convertir entre listas HTML anidadas arbitrariamente y JSON. Empecé con el ejemplo del componente web MDN expand -list-web-component

Ejemplo de lista anidada -

 <ul is="expanding-list" id="expl"> <li>UK <ul> <li>Yorkshire <ul> <li>Leeds <ul> <li>Train station</li> <li>Town hall</li> <li>Headrow</li> </ul> </li> <li>Bradford</li> <li>Hull</li> </ul> </li> </ul> </li> <li>USA <ul> <li>California <ul> <li>Los Angeles</li> <li>San Francisco</li> <li>Berkeley</li> </ul> </li> <li>Nevada</li> <li>Oregon</li> </ul> </li> </ul>

que podría expresarse en el siguiente formato JSON:

 { "UK": { "Yorkshire": { "Leeds": { "Train station": {}, "Town hall": {}, "Headrow": {} }, "Bradford": {}, "Hull": {} } }, "USA": { "California": { "Los Angeles": {}, "San Francisco": {}, "Berkeley": {} }, "Nevada": {}, "Oregon": {} } }

para extraer los textos de la lista anidada, lo intenté:

 const toJSON = async (elem) => { for (let i = 0; i < elem.childNodes.length; i += 1) { console.log('parentElement', elem.childNodes[i].parentElement); console.log('nodeType', elem.childNodes[i].nodeType); if (elem.childNodes[i].nodeType === 3) { // Node.TEXT_NODE (3) The actual Text inside an Element or Attr console.log('textContent', elem.childNodes[i].textContent); } toJSON(elem.childNodes[i]); } }; toJSON(document.getElementById('expl'));

pero esto registra muchas líneas nuevas además del contenido del texto y la relación padre-hijo no es obvia. Sospecho que mi requisito no es poco común y probablemente estoy reinventando la rueda. ¿Hay un mejor enfoque para resolver el problema?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda