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

378
Visualizações
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 Respostas
Responde à pergunta

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 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