Obtengo esta cadena de mi llamada api:
"{'attachments': [{'type': 'html', 'html': 'text-test'}, {'type': 'album', 'album': [{'url': 'htps://s3.eu-central-8f7ba8d118dbf1/pic/cdyegkwkaije7720e2f72.jpg', 'type': 'image'}]}]}" Necesito encontrar una manera de analizarlo y poder iterar sobre los elementos en la lista de attachments , pero cuando trato de ejecutar JSON.parse(str) recibo un error, supongo que porque la palabra attachments tiene comas alrededor.
El error es Uncaught SyntaxError: Unexpected token ' in JSON at position 1 at JSON.parse
¿Cómo puedo decodificarlo para poder llegar a los archivos adjuntos?
tienes que reemplazar ' con " . prueba esto
var jsonStr ="{'attachments': [{'type': ..." //your api string jsonStr = jsonStr.replaceAll("'","\""); var result = JSON.parse(jsonStr);JSON requiere " , no ' . Si esta es su propia API, debe cambiar la implementación para que devuelva " comillas. Es mejor usar JSON.stringify(objectDataToSend) si su API está escrita en JavaScript.
Si esta no es su propia API, sugeriría usar la función String.replaceAll() para reemplazar todo ' con " :
let data = "{'attachments': [{'type': 'html', 'html': 'text-test'}, {'type': 'album', 'album': [{'url': 'htps://s3.eu-central-8f7ba8d118dbf1/pic/cdyegkwkaije7720e2f72.jpg', 'type': 'image'}]}]}" const result = JSON.parse(data.replaceAll("'", '"'));