Tengo un objeto json en DB:
{ "ui": {}, "title": "Hola mundo 2", "values": {}, "properties": {}, "description": "descripcion" }En el controlador de Laravel, envío los datos a la vista:
$surveyData = Empresa::find($empresa_id)->survey; return view('surveys.edit')->with('surveyData', json_encode($surveyData));En Laravel Blade, adjunto los datos en un div:
<div id="poll" data-survey=@json($surveyData)></div>En React obtengo los datos y los guardo en la variable oldData:
const oldData = document.querySelector("#poll").dataset.surveyEl problema es que recibo un error JSON.parse en React porque ese JSON se imprime en el DOM de vista de Laravel en el siguiente formato Unicode:
<div id="poll" data-survey="\u0022{\\\u0022ui\\\u0022: {}, \\\u0022title\\\u0022: \\\u0022Hola mundo 2\\\u0022, \\\u0022values\\\u0022: {}, \\\u0022properties\\\u0022: {}, \\\u0022description\\\u0022: \\\u0022descripcion\\\u0022}\u0022"></div>cuando analizo ese json en React:
JSON.parse(oldData)Estoy recibiendo este error:
Uncaught SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON dataRealmente no sé dónde está el error o qué más hacer.
Parece que codifica dos veces sus datos JSON: json_encode($surveyData) y luego @json($surveyData) Cambiar
return view('surveys.edit')->with('surveyData', json_encode($surveyData));a
return view('surveys.edit')->with('surveyData', $surveyData);