如何在JavaScript中使用db/php中的JSON

And*_*ndo 10 javascript jquery

我正在使用地图插件来渲染一些数据.数据来自数据库并进入json文件 - 脚本运行良好.我决定直接从php输出中使用数据而不是制作json文件.由于某种原因,javaScript不接受直接的php输入.我正在使用codeigniter MVC

以下是当前有效的示例代码:

$.getJSON('_data/index/data.json', function(data){ ...
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

 var dataMap = '<? print $mapData;?>';
        $.getJSON(dataMap, function(data){...
Run Code Online (Sandbox Code Playgroud)

*编辑2*

根据答案 - 此选项也不起作用.

var dataMap = '<?php echo $mapData;?>';
        $.get(dataMap, function(data){...
Run Code Online (Sandbox Code Playgroud)

这是json数据

{"countries":{"AL":"1","GB":"1","RS":"1","BG":"6","CA":"3","AT":"2","CD":"1"}}
Run Code Online (Sandbox Code Playgroud)

编辑

$ mapData是

FOREACH LOOP
 $retdata['countries'][] = strtoupper($row->code);
 $retdata['num'][] = $row->num;
ENDFOREACH LOOP
 $retdata['countries'] = array_combine($retdat['code'], $retdata['num']);
 $retdata = json_encode($retdata);
Run Code Online (Sandbox Code Playgroud)

然后将其打印到正常文件中.这是进入模型,然后我将它传递给控制器​​,然后进入视图.该字符串与$dataMap我在文件中的字符串和发送到视图的字符串相同.

Mik*_*ant 3

如果您只是要将 JSON 数据直接插入到 javascript 变量中(而不是使用 AJAX),那么您getJSON根本不需要调用。直接这样写对象就可以了。

var js_object = <?php echo $mapData; ?>;
alert(js_object.countries.AL);
alert(js_object.countries.GB);
Run Code Online (Sandbox Code Playgroud)

请注意,PHP 字符串不会回显到引号中,这意味着您直接创建一个 javascript 对象文字,而不是需要通过以下方式解析为对象的字符串JSON.parse()