繁体   English   中英

在javascript函数中打印json数据,将引号替换为“”

[英]Printing json data in javascript function replace quotes by “"”

从几周以来,我一直在使用Laravel Framework。

我有一个奇怪的问题,我想将PHP 2D数组转换为JavaScript对象,因此在控制器json_encode()中使用了类似以下内容:

$arr['ping']    = array_values($arr['ping']);
$arr['doc']     = array_values($arr['doc']);

$data = json_encode($arr, JSON_HEX_QUOT);

然后,在我的视图文件中:

<div class="card-content">
        {{ $data }}
</div>

<div id="chartPingListExpand" class="ct-chart"></div>

<script type="text/javascript">
    $(document).ready(function() {
        app.initChartPingListExpand({{ html_entity_decode($data) }}, {{ $maxping }});
    });
</script>

这是东西:我的{{ $data }}正确显示了我的json字符串

{"ping":[4,30],"doc":["2018-03-23 09:06:53","2018-03-23 01:04:23"]}

但是Javascript不喜欢它:

未捕获的SyntaxError:无效或意外的令牌

在这条线

app.initChartPingListExpand({{ html_entity_decode($data) }}, {{ $maxping }});

我认为这是因为HTML会将quotes翻译为&quot ; 我尝试了很多方法来告诉html不要翻译那些引号,但是它不起作用,有人有什么主意吗?

也许我可以将数据传递给Javascript函数或其他任何方式?

您的$data已经是一个javascript对象,您无需对其进行解码

您可以尝试是否将var obj = {{ $data }}; console.log(JSON.stringify(obj)) var obj = {{ $data }}; console.log(JSON.stringify(obj))

您应该使用JSON.stringify将JavaScript值转换为JSON字符串

var data = JSON.stringify(jsonData);

请访问此链接以获取更多详细信息。

请注意,Blade将尽力保护您,并转义所有不安全的字符。 采用

{!! $data !!} 

避免那个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM