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

193
Views
Error de sintaxis no detectado: Token inesperado < en JSON en la posición 0: en JSON.parse (<anónimo>) en Objeto.<anónimo>

tengo un error en JSON.parse(), tengo un archivo .php que contiene un método para recuperar datos de la base de datos y un archivo .js para la función de autocompletar, mi archivo .php devuelve datos como una cadena y necesito convertirlo en objeto usando JSON.parse().

este es mi archivo php

 <?php include_once("database_conn.php"); function request($conn) { $eventstArray = array(); $events = "SELECT * FROM te_events,te_category,te_venue WHERE te_events.venueID = te_venue.venueID AND te_events.catID = te_category_catID ORDER BY 1 "; $eventsQuery1 = mysqli_query($conn,$events) or DIE (mysqli_error($conn)); while($eventsQuery2 = mysqli_fetch_array($eventsQuery1)) { $eventstArray[] = array ( 'label' => $eventsQuery2['eventTitle']; 'venue' => $eventsQuery2['venueName']; 'category' => $eventsQuery2['catDesc']; 'price' => $eventsQuery2['eventPrice']; 'description' => $eventsQuery2['eventDescription']; ); } return json_encode($eventstArray); } echo request($conn); ?>

y este es mi archivo autoComplete.js

 $(document).ready(function() { 'use strict'; $.ajax ({ method: "get", url: "requestOffer.php" }) .done(function(data) { var offers = JSON.parse(data); // now we have the data attach the autocomplete $('#EOffers').autocomplete ({ minLength:3, source: offers, select: function(event, ui) { $('#chosenEvent').text(ui.item.label); $('#chosenEvent').text(ui.item.vanue); } }); }); });

No puedo eliminar el JSON.parse() porque lo necesito para convertir de cadena a objeto, espero que alguien pueda ayudarme a resolver esto y realmente lo aprecio.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

El error está dentro del lado del servidor, cuando hay un error en el lado del servidor, la respuesta viene con las etiquetas html '<' cuando hay un error, php agregará la etiqueta con el mensaje de error. Por lo tanto, su json contiene las etiquetas html y deja de ser válido debido a etiquetas inesperadas.

El error está dentro de esta matriz.

 $eventstArray[] = array ( 'label' => $eventsQuery2['eventTitle']; 'venue' => $eventsQuery2['venueName']; 'category' => $eventsQuery2['catDesc']; 'price' => $eventsQuery2['eventPrice']; 'description' => $eventsQuery2['eventDescription']; );

debería ser

 $eventstArray[] = array( 'label' => $eventsQuery2['eventTitle'], 'venue' => $eventsQuery2['venueName'], 'category' => $eventsQuery2['catDesc'], 'price' => $eventsQuery2['eventPrice'], 'description' => $eventsQuery2['eventDescription'] );

(El origen del problema era el punto y coma (;) después del valor de la descripción. Debería estar solo al final de la matriz)

over 4 years ago · Santiago Trujillo Report

0

Ese error normalmente se ve cuando el valor dado a JSON.parse en realidad no está definido. Por lo tanto, verificaría el código que intenta analizar esto; lo más probable es que no esté analizando la cadena real que se muestra aquí.

over 4 years ago · Santiago Trujillo Report

0

Es un error del lado del servidor. Puede verificar el valor devuelto por el servidor (código php) usando las herramientas de desarrollo del navegador como Firefox y verificar el mensaje de respuesta.

Además, tal vez pueda eliminar JSON.parse() y agregar dataType: "json" dentro de la función ajax

over 4 years ago · Santiago Trujillo 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!