为了账号安全,请及时绑定邮箱和手机立即绑定

将数据传递给 javascript 但反斜杠太多

将数据传递给 javascript 但反斜杠太多

PHP
慕码人2483693 2023-06-18 15:59:41
我正在将数据从我的控制器传递到 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>如何删除 JSON 数据中的反斜杠?注意:事件列数据类型为 JSON我正在使用 LARAVEL 7谢谢
查看完整描述

4 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

你需要在控制器中解码你的 json


  public function index()

        {

            $events  = json_decode(Eventcalendar::get()->pluck('event'));

            return view('eventcalendar.index',compact('events'));

        }


查看完整回答
反对 回复 2023-06-18
?
互换的青春

TA贡献1797条经验 获得超6个赞

根据Laravel 文档

呈现 JSON


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


<script>

    var events = <?php echo json_encode($events); ?>;

</script>

但是,您可以使用 @json Blade 指令而不是手动调用 json_encode。@json 指令接受与 PHP 的 json_encode 函数相同的参数:


<script>

    var events = @json($events);


    var events = @json($events, JSON_PRETTY_PRINT);

</script>


查看完整回答
反对 回复 2023-06-18
?
湖上湖

TA贡献2003条经验 获得超2个赞

通过添加解决它

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


查看完整回答
反对 回复 2023-06-18
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

如果您可以控制后端代码,IE,您正在向后端发送请求,您可以添加JSON_UNESCAPED_SLASHES作为函数的第二个参数json_encode来停止转义字符,所以它应该看起来像这样:json_encode($res, JSON_UNESCAPED_SLASHES)。


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


您可能会使用这样的东西;初始化一个新数组newData并将解析后的数据推入其中:


var newData = []

data.forEach(element => {

  newData.push(JSON.parse(element))

})


查看完整回答
反对 回复 2023-06-18
  • 4 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信