javascript - 将 Laravel 集合/数组转换为 Javascript 数组

标签 javascript jquery arrays json laravel

我想将一个数组从 Laravel 分配给一个 JavaScript 数组。我已经从我的 AppServiceProvider 获取了数组,并对其进行了 json_decoded:

View::composer('*', function($view)
{
   $users = Users::all();
   $view->with(compact(users );
}

然后我从我的 javascript 文件访问我的 $usersArray,如:

  var dataSet = JSON.parse({!!$users !!});

但是我收到以下错误;

jQuery.Deferred exception: Unexpected token o in JSON at position 1 SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)

最佳答案

由于您在服务器端对其进行编码,因此您需要在客户端对其进行解码,例如:

$chequesArray = Users::all()->toJson();

var dataSet = JSON.parse({!!json_encode($chequesArray)!!});

或者也可以使用“base64_encode”来保存 json 格式,例如:

$chequesArray = base64_encode(Users::all()->toJson());

var dataSet = JSON.parse(atob('{{$chequesArray}}');

主要区别在于 {{ }}{!! !!},第一个转义特殊字符,所以它会将引号 "" 转换为 " 然后 JS 将无法解析字符串(这就是为什么我们可以使用 `base64_encode`` 来保存格式),第二个将保存格式并允许引用,这使 JS 部分能够简单地解析它。

关于javascript - 将 Laravel 集合/数组转换为 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55257436/

相关文章:

混合了文字和数组的 Javascript 数组

javascript - 使用 JavaScript/JQuery 在同一页面上弹出

javascript - 如何使 forEach 循环等待正则表达式替换?

java - 给定已按降序排序的 arr1 和 arr2,输出一个数组,该数组按降序附加 arr1 和 arr2 中的值

javascript - 无法在 ES6 Mongoose 扩展模型中调用 save()

jquery - 将鼠标悬停在 div 上并使用 jQuery 更改两个图像?

javascript - fancybox 模态属性不起作用

jquery - 获取我的复选框的选中值

python - 如何在不复制底层数据的情况下序列化多个 numpy View (即具有共享数据的数组)?

javascript - JS通过引用推送对象的原因是什么?