传递更多数据时jQuery.parseJSON停止工作

时间:2016-06-10 21:49:19

标签: javascript jquery json jquery-ui-autocomplete

我有一个查询数据库的脚本,并用结果回显json代码 javascript使用jQuery.parseJSON方法获取并存储在变量中,然后填充文本框以执行自动完成。
如果我在数据库查询中返回少于30行,那么一切都很完美 当我向其传递更多数据时,jQuery.parseJSON方法看起来失败了。

如何更改代码以使其能够解析更多数据?

感谢您的帮助。

JSON代码:

{
    "display":true,
    "url":"http://project-url",
    "autoComplete":
    [
        {
            "value":"1",
            "desc":"Ford",
            "model":"Edge",
            "label":"1 Ford Edge"
        },
        {
            "value":"2",
            "desc":"Toyota",
            "model":"Camry",
            "label":"2 Toyota Camry"
        },
        {
            "value":"3",
            "desc":"Honda",
            "model":"Accord",
            "label":"3 Honda Accord"
        },
        {
            "value":"4",
            "desc":"Honda",
            "model":"Civic",
            "label":"4 Honda Civic"
        }
    ]
}

Javascript代码:

var data = $.parseJSON(jsonVar);

$('#value-input').autocomplete(
{
    source: data.autoComplete,
    minLength: 3,
    select: function(event, ui)
    {
        $('#desc-input').val(ui.item.desc);
    }
});

2 个答案:

答案 0 :(得分:0)

没有任何代码我们只能做出假设,在这种情况下Jquery.ParseJSON支持更大的数据,可能问题是json,也许某些字符是代理json或与返回的行大小无关的东西数据库。

您可以验证json here

你能包含产生错误的json吗?或者你可以验证我在上面提供的链接中的json,以检查问题是否存在于json中?

答案 1 :(得分:0)

问题是数据在其中一个元素中带有一个断行。数字2, desc 元素之间的断开线。它是一种有效的JSON格式,但jQuery由于某种原因不喜欢它。我只是删除了断线,它的工作原理。谢谢罗纳德!

{
    "display":true,
    "url":"http://project-url",
    "autoComplete":
    [
        {
            "value":"1",
            "desc":"Ford",
            "model":"Edge",
            "label":"1 Ford Edge"
        },
        {
            "value":"2

            ",
            "desc":"Toyota",
            "model":"Camry",
            "label":"2 Toyota Camry"
        },
        {
            "value":"3",
            "desc":"Honda",
            "model":"Accord",
            "label":"3 Honda Accord"
        },
        {
            "value":"4",
            "desc":"Honda",
            "model":"Civic",
            "label":"4 Honda Civic"
        }
    ]
}