I am getting this string from my api call:
"{'attachments': [{'type': 'html', 'html': 'text-test'}, {'type': 'album', 'album': [{'url': 'htps://s3.eu-central-8f7ba8d118dbf1/pic/cdyegkwkaije7720e2f72.jpg', 'type': 'image'}]}]}"
I need to find a way to parse it and be able to iterate over the items in attachments
list, but when I try to run JSON.parse(str)
I am getting an error, I guess because the word attachments
has commas around it.
The error is Uncaught SyntaxError: Unexpected token ' in JSON at position 1 at JSON.parse
How can I decode it to be able to reach the attachments?
CodePudding user response:
you have to replace ' with " . try this
var jsonStr ="{'attachments': [{'type': ..." //your api string
jsonStr = jsonStr.replaceAll("'","\"");
var result = JSON.parse(jsonStr);
CodePudding user response:
JSON requires "
, not '
. If this is your own API, you should change the implementation to return "
quotations. Best to use JSON.stringify(objectDataToSend)
if your API is written in JavaScript.
If this is not your own API, I'd suggest using the String.replaceAll()
function to replace all '
with "
:
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("'", '"'));