Uncaught SyntaxError: Unexpected token a in JSON at position at JSON.parse (<anonymous>)

Uncaught SyntaxError: Unexpected token a in JSON at position at JSON.parse (<anonymous>)

Usando laravel y blade defino la creación de una constante en js a partir de un JSON así:

const phpresult = JSON.parse(`{!! json_encode($result) !!}`)

El resultado es algo como:

const phpresult = JSON.parse(`[{"request_uri":"\/__media__\/js\/netsoltrademark.php?d=baidu.com"},{"request_uri":"\/...}]`)

Si bien ej JSON está bien formado me daba un error en esta linea:

{"request_uri":"/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21"}

El problema está en el caracter backslash o barra invertida \. Cuando se le inyecta a JSON.parse no lo sabe interpretar.
La solución pasa por hacer uso de String.raw quedando así la transformación:

//$result es una variable php que la tengo en una vista .blade. json_encode es una función nativa de php const phpresult = JSON.parse(String.raw`{!! json_encode($result) !!}`)

Autor: Eduardo A. F.
Publicado: 12-01-2021 20:27