簡體   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