Obtengo los datos de una Api (Free Advice Api) después de obtenerlos, convierto los datos en formato json. pero cuando trato de analizar Json a través de un error
VM3787:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at index.js:24:18Mi código JS
let url = ` https://api.adviceslip.com/advice`; let convert = async() => { try{ let takedata = await fetch(url).then(res => res.json()).then(data => { console.log("Api fetched Successfully"); // console.log(data); }) return takedata; } catch(e) { console.log(e); } } // console.log(convert());//this provide data in console as Json format //converting json into array console.log(JSON.parse(convert()));necesita comprender un poco más sobre las promesas. La variable takedata aquí es una promesa, no los datos en sí, por lo que no puede hacer un json.parse en él.
así que espere a que la promesa devuelva datos y haga un json.parse en los datos de la promesa y no en la promesa en sí
let url = ` https://api.adviceslip.com/advice`; const fetch = require('node-fetch'); let convert = async () => { try { let takedata = await fetch(url); let data = await takedata.json(); return data; } catch (e) { console.log(e); } } // console.log(convert());//this provide data in console as Json format //converting json into array console.log(convert().then(data => console.log(data)));Además, res.json() ya devuelve un objeto y JSON.parse necesita una cadena para analizar no un objeto.