Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

375
Vistas
Cómo corregir el final inesperado del error json cuando ejecuto JSON.parse()

Estoy trabajando en un proyecto de verificación de documentos. mi código funciona cuando existe el documento o cuando la persona registrada emitió el documento. pero falla y devuelve un error de "final inesperado de JSON" cuando la persona registrada no emite el documento (por ejemplo, para un nuevo usuario). el error se devuelve cuando utilicé JSON. parse (documentos) en Ejs. ¿Cómo puedo detectar el error con try-catch o cualquier otro medio en EJS? aquí está el resultado del código cuando se encontró el documento (salida esperada)

 <% console.log('fit', JSON.parse(documents, null, '\t')) %> Output fit [ { Key: 'DOCUMENT0', Record: { name: 'bachelor of science degree', url: 'https://bitcoin.org/ggg.pdf', issuedBy: 'sol123', dateOfIssuance: '12:18 PM, 25 September, 2021', hashedDoc: 'dac729a8acf4b8a88f73f5bd84206c34e01e0992efa251b772f68696e2c2539c9ed0090e73ef6b87dc24e3177c6fd5341c3e9e24ef14267ce07ab9428aeed897', docType: 'Whitepaper' } } ]

El problema es cuando el documento no se encuentra (por ejemplo, si el usuario es nuevo y aún no ha emitido el documento);

 SyntaxError: /home/verification/fabcar/javascript/views/pages/dashboard.ejs:15 13| <div class="list-group" id="list-tab" role="tablist" style="margin-top: 10px;"> 14| >> 15| <% JSON.parse(documents).forEach(document => { %> 16| <a class="list-group-item list-group-item-action" id="<%= document.Key %>" data-bs-toggle="tab" 17| href="#list-<%= document.Key %>" role="tab" aria-controls="list-<%= document.Key %>" style="min-width: 200px;"><%= document.Key %></a> 18| <% }) %> Unexpected end of JSON input at JSON.parse (<anonymous>

lo que quiero es, ¿cómo puedo mostrar el mensaje NO DOCUMENT ISSUED en EJS cuando no hay ningún documento emitido por el usuario? por favor necesito su ayuda soy nuevo en javaScript y ejs.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

puedes usar intentar atrapar

 try { let user = JSON.parse(json); } catch (err) { alert( "user is new and not yet issued document" ); console.log( err.name ); console.log( err.message ); }

al hacerlo, puede verificar cada error y responder en consecuencia.

o bien use la función de validación verdadera o falsa como la siguiente y continúe en consecuencia

 function isValidJSON(text) { try { JSON.parse(text); return true; } catch { return false; } }

Actualizado para la pregunta: Cómo crear try catch en ejs

Aquí hay un ejemplo de Try Catch.

 <% function isValidJSON(text) { try { JSON.parse(text); return true; } catch { return false; } } var json1 = '{"item" : {"item2" : "item Data"}}'; var json2 = '{"item" : {"item2" : "item Data}}'; %> pasing json <% if(isValidJSON(json1)) { %> <p>Valid jsonr!</p> <% } else { %> <p>Invalid Json!</p> <% } %> pasing json <% if(isValidJSON(json2)) { %> <p>Valid jsonr!</p> <% } else { %> <p>Invalid Json!</p> <% } %>

puede ver que json1 es válido y json2 no es válido.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda