js数组到json转换,结果是空白页

时间:2015-05-26 10:12:58

标签: javascript php json

我的js数组到json转换器有问题,我没有结果,但我不知道是什么问题。

我的来源(在外部文件中):

var data = new Array(); data[0] = new Array('Joe','1973-12-11','Male'); data[1] = new Array('Harris','1957-12-11','Male'); data[2] = new Array('Sarah','1974-03-22','Female'); 

我的代码:

  <html>
    <head>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src="json2.js">
    </script>
    <script src="source.php" type="text/javascript" 

    language="javascript"></script>


    </head>
    <body>


    <script language="javascript" type="text/javascript">
    <!--

    $(document).ready(function () {


    var json = data;

            var tr;
            for (var i = 0; i < json.length; i++) {
    console.log(json[i])

                tr = $('<tr/>');
                tr.append("<td>" + json[i][0] + "</td>");
                    tr.append("<td>" + json[i][1] + "</td>");
                    tr.append("<td>" + json[i][2] + "</td>");
                $('table').append(tr);
            }
        });


    </script>
    <table>
    </table>
    </body>
    </html>

我得到了一个结果的空白页面,我不知道为什么。

2 个答案:

答案 0 :(得分:1)

实际上你的所有问题都是由这一行引起的:

tr = $('<tr/>'); 

此处选择器需要tag nameclassid,而您指定的字符串包含错误的HTML,请按以下方式更改:

tr = $('tr');

这就是你得到的原因:

  

SyntaxError:expect expression,got&#39;&lt;&#39;

同样将表移到脚本标记之外:在正文中:

 </script>
    <table>
    </table>
 </body>

答案 1 :(得分:0)

如果你还没有包含jQuery,请像这样包含它:

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

不需要stringify。只需将data分配给json变量,或直接迭代data

var json = data;

您的source.php文件看起来应该是这样的:

<?php
header("content-type: application/x-javascript");
echo"var data = new Array(); data[0] = new Array('Joe','1973-12-11','Male'); data[1] = new Array('Harris','1957-12-11','Male'); data[2] = new Array('Sarah','1974-03-22','Female');
";

创建表格元素,或先将其放在html中:

<table></table>

还将索引从1,2,3更改为0,1,2:

var tr;
for (var i = 0; i < json.length; i++) {
    tr = $('<tr/>');
    tr.append("<td>" + json[i][0] + "</td>");
    tr.append("<td>" + json[i][1] + "</td>");
    tr.append("<td>" + json[i][2] + "</td>");
    $('table').append(tr);
}

输出:

Joe 1973-12-11  Male
Harris  1957-12-11  Male
Sarah   1974-03-22  Female