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

227
Visualizações
Js: muestra datos JSON en HTML

a continuación tengo datos JSON para el menú del café y quiero verlos en la página HTMl como una vista de cuadrícula que muestra la imagen, el nombre y el precio... ¿hay alguna manera de hacer esto en JS y HTML?

 [ { "placeImage": "assets/images/straw-1.jpg", "placeName": " pizza", "price": 15000 }, { "placeImage": "assets/images/straw-1.jpg", "placeName": " Burger", "price": 15000 }, ]

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Esto depende en parte de si está procesando esos datos en el lado del servidor o en el lado del cliente. De cualquier manera, puede acceder a los datos JSON en su secuencia de comandos JS de esta manera:

 const cafeData = require('./cafe.json'); // If it is in the same directory as the script console.log(cafeData);

Si está tratando de crear una página HTML dinámica con datos de un servidor, intente usar un lenguaje de plantillas como EJS, que es el más simple de aprender para un desarrollador de JavaScript. Si está del lado del cliente, deberá usar el DOM para insertar esos datos en su HTML. Por ejemplo, si tiene un elemento en una tarjeta de producto como este: <div id="pizzaPriceDisplay">

Entonces tu código JS podría verse así:

 const priceDisplay = document.querySelector('#pizzaPriceDisplay'); pizzaPriceDisplay.innerText = '$' + cafeData[0].price;

Espero haber ayudado y feliz codificación :)

about 4 years ago · Juan Pablo Isaza Relatório

0

¡Por supuesto! Supongamos que sus datos JSON se almacenan en una cadena de javascript

 const jsonData = "..."; //The JSON string

Lo primero que debe hacer sería convertir esos datos json en un objeto javascript que podamos iterar. Podemos hacer eso así:

 const data = JSON.parse(jsonData);

Genial, ahora, por lo que puedo decir, desea convertir cada elemento en un elemento HTML (como una tarjeta) y mostrarlos todos en una cuadrícula. La parte de la cuadrícula puede ser bastante trivial hoy en día usando CSS Grid: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout .

Entonces, en algún lugar de su HTML, le gustaría tener un elemento como este:

 ... <div class="grid-container" id="menu-items-container"> <!-- We are going to insert your rendered data here --> </div> ...

Y en algún lugar de tu css tendrás algo como esto

 ... .grid-container{ display:grid; /* ... */ } ...

Ahora viene la parte divertida. Tomando el contenido de esa variable de data y convirtiéndolos en html

 //This function will take the data of one item //And return an html element function renderItem(item){ const base = document.createElement("div"); const img = document.createElement("img"); const title = document.createElement("h1"); const price = document.createElement("h2"); img.src = item.placeImage; title.textContent = item.placeName; price.textContent = item.price; base.appendChild(img); base.appendChild(title); base.appendChild(price); return base; } const container = document.querySelector("#menu-items-container"); for (let item of data){ container.appendChild(renderItem(item)); }

Y eso es todo, probablemente querrá diseñar un poco mejor los elementos insertados, lo que puede hacer agregando algunas clases aquí y allá. Pero probablemente lo entiendas.

Para los datos particulares que proporcionó en el ejemplo, esto debería producir algo similar a esto:

 <div class="grid-container" id="menu-items-container"> <div> <img src="assets/images/straw-1.jpg"/> <h1>pizza</h1> <h2>15000</h2> </div> <div> <img src="assets/images/straw-1.jpg"/> <h1>Burger</h1> <h2>15000</h2> </div> </div>
about 4 years ago · Juan Pablo Isaza Relatório

0

Simplemente analice el objeto JSON a JS

 let menu = JSON.parse('[{"placeImage": "assets/images/straw-1.jpg", "placeName": "Pizza", "price": 15000},{"placeImage": "assets/images/straw-1.jpg", "placeName": "Burger","price": 15000}]');

Luego puede iterar sobre él usando un bucle y dibujar el HTML que desea, por ejemplo: Tabla

 function drawMenu(menu) { let tableElement = document.createElement("table"); // Draw the headers of the table let headerTableRowElement = document.createElement("tr"); let imageHeaderElement = document.createElement("th"); imageHeaderElement.innerText = "Image"; headerTableRowElement.appendChild(imageHeaderElement); let nameHeaderElement = document.createElement("th"); nameHeaderElement.innerText = "Name"; headerTableRowElement.appendChild(nameHeaderElement); let priceHeaderElement = document.createElement("th"); priceHeaderElement.innerText = "Price"; headerTableRowElement.appendChild(priceHeaderElement); tableElement.app.appendChild(headerTableRowElement); // Draw the items in the menu for (let i = 0; i < menu.length; ++i) { let item = menu[i]; let menuItemTableRowElement = document.createElement("tr"); let imageElement = document.createElement("td"); let image = document.createElement("img"); image.setAttribute("src", item.placeImage); imageElement.appendChild(image); menuItemTableRowElement.appendChild(imageElement); let nameElement = document.createElement("td"); nameElement.innerHTML = item.placeName; menuItemTableRowElement.appendChild(nameElement); let priceElement = document.createElement("td"); priceElement.innerHTML = item.price; menuItemTableRowElement.appendChild(priceElement); tableElement.appendChild(menuItemTableRowElement); } document.appendChild(tableElement); }
about 4 years ago · Juan Pablo Isaza Relatório
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