使用Jquery和json语法错误处理json数组

时间:2013-10-04 10:30:40

标签: jquery json arrays

我想处理Json文件返回的php数组。 PHP代码如下。

$pdo = new PDO('');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT * from table';
foreach ($pdo->query($sql) as $row) 
{
    $results[] = array('row1' =>$row['col1'],
    'row2' => $row['col2'],
    'row3' => $row['col3']);
}
header('Content-Type: application/json');
echo json_encode($results);

上面的代码会像这样返回Json数组

[
   {"row1":"test","row2":"5.123456","row3":"6.123456"},
   {"row1":"test1","row2":"6.123456","row3":"8.123654"},
   {"row1":"test3","row2":"6.321456","row3":"8.964512"}
]

我想处理上面的Json数组并将其显示在表中。我尝试了许多Jquery代码并在电脑前花了好几个小时。但我无法得到正确的答案。请帮我。请帮助我提供正确的Jquery代码来处理Json数组,或者提供正确的PHP代码以发送正确的Json字符串。我忘了说另一个信息。当我尝试使用FF进行调试时,我在控制台中出现错误

http://i.stack.imgur.com/tnLcZ.jpg

(图片显示:SyntaxError:JSON.parse:意外的数据结束)

更新

我像这样更新你的脚本。脚本什么都不返回。请帮忙

var html="<table border=1 style='border-collapse:collapse'>";
$(document).ready(function () {
$.ajax({
   url: "http://10.44.0.160/service.php",
   contentType: "application/json; charset=utf-8",
   dataType: "jsonp",
   type: "POST",
success: function(data) 
{
data.forEach(function(obj,index){html+="<tr><td>"+index+"<td>"+obj.csc_name+"</td><td>"+obj.lat+"</td><td>"+obj.longi+"</td></tr>";});
html+="</table>";
jQuery(html).appendTo("body");
}
            });
        });

2 个答案:

答案 0 :(得分:0)

使用each循环抛出你的json数据

<script type="text/javascript">
    $.each(yourData, function(key, val) {

           //your code here
           alert(key + '=' + val)

     });
 </script>

答案 1 :(得分:0)

var html="<table border=1 style='border-collapse:collapse'>";

var json=[
 {"row1":"test","row2":"5.123456","row3":"6.123456"},
 {"row1":"test1","row2":"6.123456","row3":"8.123654"},
 {"row1":"test3","row2":"6.321456","row3":"8.964512"}
];
json.forEach(function(obj,index){html+="<tr><td>"+index+"<td>"+obj.row1+"</td>    <td>"+obj.row2+"</td><td>"+obj.row3+"</td></tr>";});
html+="</table>";
jQuery(html).appendTo("body");

看看这个小提琴 http://jsfiddle.net/TdM8s/