从PHP到Javascript呈现JSON
如何将从PHP到Javascript呈现JSON,javascript,php,json,laravel,Javascript,Php,Json,Laravel,如何将JSON从PHP/Laravel转换为JSON Javascript。我已经有了来自PHP的JSON字符串,唯一的问题是它只呈现为字符串。我希望它是javascript中的json。请看下面我的代码 $('#email').selectize({ plugins: ['remove_button'], valueField: 'email', labelField: 'name', searchField: ['email', 'name'], op
JSON
从PHP/Laravel
转换为JSON Javascript。我已经有了来自PHP的JSON字符串,唯一的问题是它只呈现为字符串。我希望它是javascript中的json。请看下面我的代码
$('#email').selectize({
plugins: ['remove_button'],
valueField: 'email',
labelField: 'name',
searchField: ['email', 'name'],
options: [JSON.parse(JSON.stringify('{!! $users !!}'))]
});
$users
的输出示例:
{“姓名”:“约翰·多伊”,“电子邮件”:john@doe.com},{“姓名”:“弗兰克·弗兰基”,“电子邮件”:frank@frank.com“}
我希望它在JS中是这样的(对于上面的options属性):
更多参考:
如果$users是一个Laravel集合,那么尝试打印它并在其上调用JSON.stringify是没有意义的。它是一个PHP对象,您需要在PHP级别执行字符串转换 但是,当您打印出来时,Laravel会自动将其转换为JSON字符串。只需使用JSON.parse
options: [JSON.parse('{!! $users !!}')]
对于Laravel系列:
(string) $users === $users->toJson() === json_encode($users)
JSON就是JSON,javascript和php之间没有区别,那就是JSON。用
[]
包装它只意味着它现在是一个JSON数组。$users
的示例输出不会正确地字符串化
,因为它无效,它是一个逗号分隔的对象列表,而它似乎应该是一个数组。只有第一个对象将被字符串化,返回:{“name”:“johndoe”,“email”:john@doe.com“}
忽略其余部分。您能告诉我如何获得$users吗?因为要在{!!$users!!}
中获取JSON,您必须{!!JSON\u encode($users)!!}
@dacastro4 laravel已经在您将集合转换为字符串时为您处理此转换。您是对的!刚刚使用了json\u encode
,因为我使用数组自定义数据。然后使用选项:[JSON.parse('{!!$users!!}')]
。记住,JSON.parse不是将其转换为JSON,而是将其转换为javascript对象或数组。哦,现在我知道了。谢谢你的提示。我以为是JSON。
(string) $users === $users->toJson() === json_encode($users)