如何在脚本标签内打印JSON数组


How to print JSON array inside script tag?

我试图在<script>标签内显示JSON数组,这是可能的吗?

以下是我到目前为止所做的尝试:

<script>
    var x =  JSON.stringify(data);
var json = (function() {
        var json = null;
        $.ajax({
            'async': false,
            'global': false,
            'url': "empdata.json",
            'dataType': "json",
            'success': function (data) {
                json = data;
            }
        });
        return json;
    })();
 </script>

我想做的:

<script>
var videos = {"employee_id":"1","employee_name":"Steve","designation":"VP","hired_date":"2013-08-01","salary"
:"6000"};
</script>

你就像这样回显它,假设你有一个$数组的参数如array("employee_id"=>1 ... )

var videos = <?php echo json_encode(array(
    "employee_id"=>1
)); ?>;  // <- don't miss the java-script semi-colon though

这应该只是打印

  var videos = {"employee_id":1};

PHP不关心你在哪里回声,在你的页面,它没有一个概念关于什么是<script>标签。它只知道有些东西是php代码,其他的都是字符串内容。

或者你可以这样做

  var videos = <?php echo '{"employee_id":1}'; ?>;

但这是没有意义的,除非你的意思是这样的。

  var videos = <?php echo '{"employee_id":'.$employee_id.'}'; ?>;

或者你可以这样做

   var videos = {"employee_id":1};

把它放在那里,我不明白了吗?

如果你的意思是从包含json的文件,那么当然可以。

<?php
 $json = file_get_contents( 'pathtofile.json');
?>
<script> ... etc.'
 var videos = <?php echo $json; ?>;

PHP可以读取文件,它可以回显这些文件的内容,PHP不关心其中的内容。唯一的问题是,内容必须是有效的Json, javascript才能工作。但是php不关心它是JSON, XML,二进制等等,它都是文本,因为php是一种松散类型的语言。事实上,php并不关心你的Javascript是否工作,它不知道Javascript是什么。

实际上这也可以工作(假设image.jpg是一个真实的图像文件)。.

  $jpg = file_get_contents( 'image.jpg' );
  echo '<img src="'. $jpg.'" '>

   header('Content-Type: image/jpeg');
   echo file_get_contents( 'image.jpg' );  //assuming there is no other content