JSON.parse 最终出现在 'missing ) after argument list'



我想将PHP数组传递给JS。为此,我使用json_encode an,然后在js json.parse((中使用json_encode。

现在的问题是,json.parse trow一个例外"丢失(在参数列表之后"。我猜是数字中的撇号(number_format> chf(。

剪报:

<script>
(function($) {
    var prices = JSON.parse('<?= $this->prices_json; ?>'); ...

..." OffSetDruck_4f":{" 1S":" 583.82"," 2S":" 1'090.09"} ...

  1. 有单个引号要逃脱吗?如果是这样,如何最好地做?
  2. JSON_ENCODE在JS JSON.PARSE中是将PHP阵列传递给JS(在模板上(的最佳实践吗?如果没有,如何最好地做?

有单个引号要逃脱吗?

在javaScript字符串字面文字中,必须逃脱的单句字符串字样。

…这就是您所拥有的: 'data with ' and then at the end'

如果是这样,如何最好地做?

完全不使用JavaScript字符串字面。

JSON是JavaScript文字符号的子集,因此只需将其视为JavaScript。不要尝试将其包裹在字符串中,然后显式解析。

var prices = <?= $this->prices_json; ?>;

尝试php:addslashes(json_encode($ php array((

有单个引号要逃脱吗?如果是这样,如何最好地做?

json_encode应该逃脱所有需要逃脱的一切。

JSON_ENCODE是在JS JSON.PARSE中将PHP阵列传递给JS(在模板上(的最佳实践吗?如果没有,如何最好地做?

您应该使用JSON_ENCODE,以确保输出正确。不要依赖默认数组输出。它与JSON无关。

您根本不需要在这里使用json.parse。

var prices = <?= json_encode($this->prices_json); ?>;

相关内容

最新更新