Blade 中的 Laravel JSON 解析问题

Posted

技术标签:

【中文标题】Blade 中的 Laravel JSON 解析问题【英文标题】:Laravel JSON parsing issue in blade 【发布时间】:2018-02-21 16:10:30 【问题描述】:

在刀片中分配 JSON 时会产生 javascript 语法错误。有两种不同的情况:

第一个案例

var jsonString = !! $json !!; //it produce syntax error

在某些情况下会产生语法错误

第二种情况

 var jsonString = JSON.parse("!! $json !!"); 

null 或空时会产生错误

JSON 输入意外结束

有什么办法可以同时处理这两种情况吗?

【问题讨论】:

var jsonString : !! json_encode($json) !!,其中 $json 是一个数组。这种格式是表单刀片。当你想在 javascript 中使用相同的,var jsonString = jsonString; 【参考方案1】:
 var jsonString = JSON.parse("!! json_encode($json) !!");

它对我有用。

【讨论】:

已经是json字符串所以json_encode会抛出异常 它不会抛出任何错误,我正在使用它并且它对我来说工作正常。您得到的错误与我得到的错误相同,并且运行良好。 同意,它会在你的情况下排列。 是的,我们也不需要解析【参考方案2】:

请这样尝试-

var json_res = "$json";
var jsonString = JSON.parse(json_res); 

希望这会对你有所帮助。

【讨论】:

我觉得和JSON.parse("!! $json !!")一样 请检查回复。【参考方案3】:

您可以使用这种方式实现此目的:

var json = null;

try 
    var json = JSON.parse('<?=str_replace('\'','\\\'', $json);?>');
 catch(SyntaxError) 
    // Do something If the json string is not a valid json.

【讨论】:

以上是关于Blade 中的 Laravel JSON 解析问题的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 中的 Blade 模板与普通 php

如何在 Json Object Laravel Blade 中访问值

Laravel Blade 中的全局变量

laravel 获取要传递给 laravel Blade 的数据,但是是 json 格式

在 Blade 中显示 JSON 集合

使用 Laravel Blade 从 Postgres 显示 JSON 数据