Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON.parse以'结束;缺少)参数列表后';_Javascript_Php_Json - Fatal编程技术网

Javascript JSON.parse以'结束;缺少)参数列表后';

Javascript JSON.parse以'结束;缺少)参数列表后';,javascript,php,json,Javascript,Php,Json,我想把一个php数组传递给js。为此,我在json.parse()中使用json_编码一个then 现在的问题是,JSON.parse在参数列表之后出现了一个异常“缺失”。我猜是数字中的撇号(number_format>CHF) 剪报: <script> (function($) { var prices = JSON.parse('<?= $this->prices_json; ?>'); ... (函数($){ var prices=JSON.par

我想把一个php数组传递给js。为此,我在json.parse()中使用json_编码一个then

现在的问题是,JSON.parse在参数列表之后出现了一个异常“缺失”。我猜是数字中的撇号(number_format>CHF)

剪报:

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

(函数($){
var prices=JSON.parse(“”)。。。
…offsetdruck_4f:{“1s”:“583.82”,“2s”:“1'090.09”}

  • 有单引号要转义吗?如果有,最好怎么做
  • json_encode an then in json.parse是将php数组传递给js(在模板上)的最佳实践吗?如果不是,最好怎么做
  • 有单引号要转义吗?如果有,最好怎么做

    json_编码应该转义所有需要转义的内容

    json_encode an then in json.parse是将php数组传递给js(在模板上)的最佳实践吗?如果不是,最好怎么做

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

    这里根本不需要使用JSON.parse

    var价格=;
    是否要转义单引号

    用单引号分隔的JavaScript字符串文本中的单引号必须转义

    …这就是您所拥有的:
    “带有数据”,然后在末尾“

    如果是的话,最好怎么做

    完全不使用JavaScript字符串文字

    JSON是JavaScript文字符号的子集,所以只需将其视为JavaScript即可。不要尝试将其包装为字符串,然后显式解析它

    var prices = <?= $this->prices_json; ?>;
    
    var价格=;
    
    伙计们,你们能解释一下为什么投了反对票吗?这段代码必须运行良好:var prices=;@simi,你们试过运行我的代码片段吗?我确信你们根本不需要使用JSON.parse。我仍然不明白为什么会投反对票。这是将PHP数据注入JS代码的最佳方式。实时代码示例不会这样做rk,因为它不运行PHP,在一个json字符串上运行
    json\u encode
    是愚蠢的。@Quentin,1)请尊重本网站的其他用户2)我们应该指出作者的主要问题:他不需要使用JSON.parse,因为JSON_encode生成已经为JS使用准备好的输出。这就是我想向他展示的。变量的名称不能保证值的类型。他在那里有数组。你的第二个答案是否定的我不太清楚。我看不到任何其他合理的可能性将更大的数组传递给js。1.php计算价格2.在前端,价格显示在带有echo的模板中。没有什么特别的,但3.在前端,参数可以更改(例如,数字或偏移)因此价格会发生变化。因此我通过引用获取新价格。示例:
    $(“#price_total”).text(价格['offsetprint_4f'][1s])
    @simi-我只给出了一个答案……它有一个例子,说明了您需要对代码进行的微小更改。现在我已经看到并理解了您的语句。它对我也适用。但现在我无法解释:我如何将“序列化数组”分配给变量
    var prices=;
    并仍然使用引用
    $访问它(“#price_total”).text(prices['offsetprint_4f'][1s])
    (不取消数组序列化)?它是JavaScript源代码。它与任何其他JS一样执行。