我正在尝试在我的JS函数中获取一个PHP JSON变量:

    var json_obj = jQuery.parseJSON ( ' + <?php echo $latLongJson; ?> + ' );


使我获取latLongJson变量的PHP代码是:

<?php
    $latLongJson = $dbUrl->getCoordinates($id);
    print_r($latLongJson);
?>


我可以使用PHP打印latLongJson变量。但是json_obj的console.log表示未定义。

JS代码

<script>
    //<![CDATA[
    var json_obj = jQuery.parseJSON ( ' + <?php echo $latLongJson; ?> + ' );
    //var json_obj = 1;
    //]]>
    console.log(json_obj);
</script>


生成的JS代码:

//<![CDATA[
var json_obj = jQuery.parseJSON ( ' +  + ' );
//]]>
console.log(json_obj);

最佳答案

考虑当' + <?php echo $latLongJson; ?> + '有效时$latLongJson变为什么。

例如,假设$ latLongJson包含字符串{"foo": "bar"},则您正在调用:

jQuery.parseJSON ( ' + {"foo": "bar"} + ' );


当您只想:

jQuery.parseJSON ( '{"foo": "bar"}' );


您可以删除+使其正常工作,但通常*都不需要*在Javascript中解析JSON。如果您知道$latLongJson包含有效的JSON,则可以执行以下操作:

var json_obj = <?php echo $latLongJson; ?>;


* There is an exception

10-07 15:32