JSON unexpected token due to filename

I have PHP code that takes a list of filename or empty strings and puts them in an array. This array is converted into JSON and stored in a database, this works fine. However, the array is also stored in an object. The issue is when I decode the JSON string of the object. I am running into an error when I try to parse this JSON string in JavaScript:
(I don’t want to show the rest of the JSON due to privacy)

{"dateCreated":"2022-02-02","dateTimeCreated":"2022-02-02T20:47","title":"lovesick","images":["","","D:\xampp\htdocs\...

Error:

VM8206:1 Uncaught SyntaxError: Unexpected token x in JSON at position 107 at JSON.parse () at new_log.php:33:50

The error is clearly due to the \ being an escape character in JSON but I have tried entering the string into the array with an escape to escape the escape: ‘D:\\xampp\\htdocs\…’ and this still gives me the same error – I have even tried \\ and \\ but they just give a slightly different error.

If I put the array into the object as a JSON string then I get the error:

VM8178:1 Uncaught SyntaxError: Unexpected string in JSON at position 96 at JSON.parse () at new_log.php:33:50

despite it being the exact same JSON string as shown above?!

Does anyone know how I can fix this issue? Is there some other way I should be storing filenames in JSON?

>Solution :

Hey mate what you need to do is Escape your backslashes in your images array.

Here is what I have done in the console: escaped string working

What you need to do is format your Json data before you send it across the line:

Here is a similar question and answer that will help : How to escape special characters in building a JSON string?

Leave a Reply