JSON将对象解析为javascript函数:syntaxerror
JSON parsed object into a javascript function : syntaxerror
我正在解析通过ajax从数据库中查询的json脚本。我想在我的javascript函数"addComp()"中使用我查询的内容(以json格式),该函数为地图上的每个建筑添加一个几何组件。以下是jQuery/ajax代码:
$.ajax({
type: "GET",
url: "ajax_processor.php",
dataType : "json",
success:function(data){
console.log(data); //here I got what i want
var geometryElement = $.parseJSON(data);
for (var i=0; i<geometryElement.length; i++) {
addComp( geometryElement[i].bldg,
geometryElement[i].iZ,
geometryElement[i].iType,
geometryElement[i].x0,
geometryElement[i].y0,
geometryElement[i].p, ...); //parameters p1, p2, p3, p4, p5
}
}
});
我通过PHP查询得到的JSON脚本是:
{"ID_geometryElement":"1","bldg":"1","iZ":"1","iType":"1","x0":"23","y0":"5","p1":"5","p2":"2","p3":"3","p4":"0","p5":"0"},
{"ID_geometryElement":"2","bldg":"1","iZ":"1","iType":"1","x0":"24","y0":"7","p1":"2.5","p2":"4","p3":"3.5","p4":"0","p5":"0"},
...
但这并没有在地图上显示任何内容,我得到了以下错误:
Uncaught SyntaxError: Unexpected token o jquery.js:550
jQuery.extend.parseJSON jquery.js:550
$.ajax.success index_LF.php:3725
fire jquery.js:3074
self.fireWith jquery.js:3186
done jquery.js:8253
callback jquery.js:8796
handleStateChange firebug-lite.js:18917
有人知道它从哪里来以及如何修复吗?
编辑:在PHP方面,我得到了:
<?php
$host = 'localhost';
$databaseName = 'localdb';
$tableName = 'building_geometry';
$user = 'admin';
$password = 'password';
$connexion = mysql_connect($host,$user,$password);
$dbs = mysql_select_db($databaseName, $connexion);
$sql = mysql_query('SELECT * from building_geometry');
$rows = array();
while($r = mysql_fetch_assoc($sql)) {
$rows[] = $r;
}
echo json_encode($rows);
?>
但问题不在php中,我对json中已经存在的内容进行了两次解析(dataType是json)。
这不是有效的JSON。它看起来像一个数组文字,但缺少外部方括号。
也就是说,
{"foo": 0, ... },
{"bar": 1, ... },
无效,但如果是则有效
[{"foo": 0, ... },
{"bar": 1, ... }]
无论如何,如果你告诉jQuery数据类型是JSON,而它实际上是JSON,那么你不必解析它。"data"参数将是解析的对象,而不是未解析的字符串。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别