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

446
Visualizações
SyntaxError: Final inesperado de la entrada JSON en JSON.parse (<anónimo>) en IncomingMessage.<anónimo>

Estoy tratando de crear una aplicación meteorológica y estoy usando una API meteorológica para obtener la información, pero aparece este error cuando intento analizar los datos JSON: SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at IncomingMessage.<anonymous> edición: necesito obtener los valores de latitud y longitud de una solicitud https. Intenté devolverlo, pero seguirá diciendo que lon y lat no están definidos.

segunda edición: si ingreso los valores de lon y lat, analizará los datos y devolverá el JSON, pero necesito los valores de lon y lat de la API locaionIQ en la solicitud https. ¿Cómo obtengo esos valores? aquí está el código:

 const express = require('express'); const app = express(); const bodyParser = require('body-parser'); const https = require('https'); const { static, response } = require('express'); require('dotenv').config(); app.use(bodyParser.urlencoded({extended:true})); app.use(express.static('public')) app.listen(3000, ()=>{ console.log("server is running on port 3000") }) app.get('/', (req,res)=>{ res.sendFile(__dirname+'/index.html') }) app.post('/', (req,res)=>{ let apiKeyLocationIQ = process.env.API_KEY_LOCATIONIQ; let apiKeyWeather = process.env.API_KEY_WEATHER; let cityLocationIQ = req.body.citySearch; let urlLocationIQ = "https://api.locationiq.com/v1/search.php?format=JSON&key="+apiKeyLocationIQ+"&q="+cityLocationIQ+"&limit=1"; https.get(urlLocationIQ, function(response){ response.on("data",function(data){ let locationIQ = JSON.parse(data); const lat= locationIQ[0].lat; const lon= locationIQ[0].lon; const cityName = locationIQ[0].display_name; }) }) let urlWeather = 'https://api.openweathermap.org/data/2.5/onecall?&lat='+lat+'&lon='+lon+'&exclude=alerts,minutely&units=metric&appid='+apiKeyWeather+'&lang=en&cnt=7'; https.get(urlWeather, function(response){ response.on("data",function(data){ let weatherData = JSON.parse(data); console.log(weatherData); }) }) })
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

En Nodo, los datos de solicitud HTTP/HTTPS pueden llegar en varios fragmentos que deben fusionarse antes de analizar la cadena JSON resultante.

Esencialmente, el análisis de JSON debe realizarse en un on("end", callback) , no en un on("data", callback) , o corre el riesgo de texto JSON incompleto.

La documentación del nodo tiene un excelente ejemplo de trabajo para obtener datos JSON en http.get(options[, callback]) . Esto no parece estar duplicado en la sección HTTPS de la documentación debido a las similitudes de las API de HTTP y HTTPS .

over 4 years ago · Santiago Trujillo Relatório

0

Los datos de respuesta de Https se recopilan en pequeños fragmentos, por lo que cuando se recopilan datos ("on"), debemos agregar los datos (cadena) en la variable (comenzando con una cadena vacía [aquí let chunks="";])

Cuando se recopilan todos los fragmentos de datos ("fin"), finalmente debemos analizar la cadena (datos API) en formato JSON.

 https.get(apiLink, function (response) { let chunks=""; response.on("data", function (chunk) { chunks+=chunk; }); response.on("end", function(){ // console.log("API Data recieved"); let defaultCovidData = JSON.parse(chunks); // code after parse string into JSON format }); });
over 4 years ago · Santiago Trujillo 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