将数据传递给javascript,但得到了太多反斜杠

将数据传递给javascript,但得到了太多反斜杠,javascript,php,laravel,Javascript,Php,Laravel,我正在将数据从控制器传递到javascript public function index() { $events = Eventcalendar::get()->pluck('event'); return view('eventcalendar.index',compact('events')); } 这是我在刀刃上做的 <script type="text/javascript"> var data = {!! $ev

我正在将数据从控制器传递到javascript

public function index()
    {
        $events = Eventcalendar::get()->pluck('event');
        return view('eventcalendar.index',compact('events'));
    }
这是我在刀刃上做的

<script type="text/javascript">
  var data = {!! $events !!}

  console.log(data) //the result is in the screenshot
</script>

变量数据={!!$events!!}
console.log(data)//结果在屏幕截图中
如何删除JSON数据中的反斜杠

注意:事件列datatatype为JSON

我正在使用LARAVEL 7

多谢各位


您需要在控制器中解码json

  public function index()
        {
            $events  = json_decode(Eventcalendar::get()->pluck('event'));
            return view('eventcalendar.index',compact('events'));
        }

如果您可以控制后端代码,即向后端发送请求,则可以添加
JSON\u UNESCAPED\u SLASHES
作为
JSON\u encode
函数的第二个参数,以停止转义字符,因此它看起来应该是这样的:
JSON\u encode($res,JSON\u UNESCAPED\u SLASHES)

如果必须用Javascript处理这个问题,可以使用
JSON.parse(string)
并迭代数组中的每个条目

你可以用这样的东西;初始化新数组
newData
,并将解析后的数据推入其中:

var newData = []
data.forEach(element => {
  newData.push(JSON.parse(element))
})

呈现JSON

有时,您可能会将一个数组传递给视图,目的是 将其呈现为JSON以初始化JavaScript变量。对于 例如:


var事件=;
但是,您可以使用 @json刀片指令。@json指令接受相同的参数 作为PHP的json_编码函数:


var events=@json($events);
var events=@json($events,json\u PRETTY\u PRINT);
通过添加

protected $casts = [
        'event' => 'array'
    ];

返回
语句之前,在控制器函数中尝试
json\u decode($events)
,只需将
{!!$events!!}
更改为
@json($events)
错误数组字符串转换
<script>
    var events = @json($events);

    var events = @json($events, JSON_PRETTY_PRINT);
</script>
protected $casts = [
        'event' => 'array'
    ];