我有一个非常简单的PHP数组
$array = [];
$array['a'] = '1';
$array['b'] = '2';
$array['c'] = '3';
PHP
如果我使用 dd($array);
,我会得到:
array:3 [▼
"a" => "1"
"b" => "2"
"c" => "3"
]
如果我解码
dd(json_encode($array));
,我得到了这个结果。"{"a":"1","b":"2","c":"3"}"
JS
我想在我的Javascript中访问这个变量,所以我尝试了以下方法:
1
console.log($array);
我得到的结果是:
$array未定义
2
我正在使用Laravel。 {{ }} == echo
console.log('{{$array}}');
我得到的结果是:
500 内部错误
htmlentities() 期望第一个参数为字符串,但却传递了数组(视图:/Users/bheng/Sites/portal/resources/views/cpe/index.blade.php)
3
console.log('{{ json_encode($array)}}');
我得到的结果是:
页面加载了,但数据看起来很糟糕:
{"a":"1","b":"2","c":"3"}
4
console.log(JSON.parse('{{ json_encode($array)}}'));
我得到的结果是:
未捕获的SyntaxError:JSON中意外的token &,位于第1个位置
5
console.log(JSON.parse('{{ json_decode($array)}}'));
我得到的结果是:
json_decode() 期望第一个参数为字符串,但却传递了数组
6
console.log('{{ json_decode($array)}}');
我得到的结果是:
json_decode() 期望第一个参数为字符串,但却传递了数组
目标
我只想在Javascript中访问我的数组作为Javascript数组或JSON。请问有人能告诉我怎么做吗?
{{ ... }}
这种语法?是 Blade、Smarty 还是其他的?你应该像这样使用console.log({{ json_encode($array)}});
(不带引号,因为 json_encode 会根据需要添加引号),但你需要原始形式,跳过模板引擎似乎执行的htmlentities()
调用。 - rickdenhaan{!! json_encode($array) !!}
似乎可以解决问题。 - code-8console.log({!! json_encode($array) !!});
- 现在,我得到了console.log({!! json_encode($array) !!});
。 - code-8