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

上一篇: jQuery JSON Parsing Error

下一篇: jQuery JSON response always triggers a ParseError