Unicode JSON在Laravel刀片中用于React,生成JSON.解析的问题



我有一个json对象在DB:

{
"ui": {},
"title": "Hola mundo 2",
"values": {},
"properties": {},
"description": "descripcion"
}

在Laravel控制器中,我向视图发送数据:

$surveyData = Empresa::find($empresa_id)->survey;    
return view('surveys.edit')->with('surveyData', json_encode($surveyData));

在Laravel Blade中,我将数据附加在div中:

<div id="poll" data-survey=@json($surveyData)></div>

在React中,我得到数据并保存在oldData变量:

const oldData = document.querySelector("#poll").dataset.survey

问题是,我得到一个JSON。解析错误在React中,因为JSON打印在Laravel视图DOM在以下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>

在React中解析json时:

JSON.parse(oldData)

我得到这个错误:

Uncaught SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

我真的不知道错误在哪里,也不知道该怎么办。

您似乎对JSON数据进行了双重编码:json_encode($surveyData),然后是@json($surveyData)

return view('surveys.edit')->with('surveyData', json_encode($surveyData));

return view('surveys.edit')->with('surveyData', $surveyData);

相关内容

  • 没有找到相关文章

最新更新