jQuery JSON解析错误
我有一个网页在调用时返回这个JSON:
[{"id":"53","desc":"Roberts"}]
我正在使用这个jQuery来通过AJAX调用它:
$.ajax ({
url: rootPath + "data/topology/stations",
dataType: 'json',
data: { areaID: $("#lbxArea").val () },
success: function (data) {
// Use data for actions
},
error: function (jqXHR, textStatus, errorThrown) {
alert (textStatus);
alert (errorThrown);
}
});
我使用Firebug来确认返回的数据是我放在顶端的。 尽管如此,我陷入error
回调,并首先看到警告框中的parsererror
,然后我看到
SyntaxError: JSON.parse: expected property name or '}'
我试图让服务返回
{"list":[{"id":"53","desc":"Roberts"}]}
但那并没有改变任何东西。
什么是响应内容类型? 尝试使用以下方法测试此响应:
从jQuery.Post获取响应内容类型
也尝试不具有dataType:'json'并检查返回!
那么 ,我在这个问题上花了一些时间,但是我会做一些能够解决这个问题的人。
错误在于想要一个来自PHP的属性访问器响应,引入以下消息:
*SyntaxError: JSON. parse: expected property name or '}'*
你应该做的是将JSON响应转换为使用函数JSON.parse(data); 在里面我们传递响应变量“data”。 我会稍微评论一下代码,以便更好地理解:
success: function (data) {/ / on success ..
var json = JSON.parse (data);/ / Convert the JSON format input
console.log (JSON.parse (data));/ / explore the answer
alert ("" + json.msj);/ / Variable Access Testing with alert
....
在这里一切似乎都很好,但是尺寸呈现错误,那是因为它执行PHP响应的方式。
这是一个切实可行的方法:
我们使用json_encode函数以JSON格式返回数据,在传递带有所需变量的关联数组的函数内。示例:
echo json_encode (array ('success' => true, 'msg' => 'Hello registered user!'));
在这些变量获得客户端没有任何问题后,简单地说,这里是一个亚硝码:
$. ajax ({/ / create an AJAX call ...
data: $ (this). serialize (), / / get the form data
type: $ (this). attr ('method'), / / GET or POST
url: $ (this). attr ('action'), / / the file to call
cache: false,
success: function (data) {/ / on success ..
var json = JSON.parse (data);
$ ('# created'). html (json.msj) / / update the DIV
我希望会有所帮助...任何问题随时问...
您可以安装Firefox附加组件“JSONView”。 也许这会给你更多关于JSON字符串的信息。
如果你没有看到任何东西(特殊的JSON标记),你可能会错过一个JSON头。
编辑: Firebug 1.4+应该在请求中显示一个JSON标签。
链接地址: http://www.djcxy.com/p/46097.html