Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

374
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!