【问题标题】:jQuery.parseJSON stop working when passed more datajQuery.parseJSON 在传递更多数据时停止工作
【发布时间】:2016-06-10 21:49:18
【问题描述】:

我有一个脚本可以查询数据库并用结果回显 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);
    }
});

【问题讨论】:

  • 请发布代码sn-ps。
  • jQuery.parseJSON 没有这样的限制。查询数据库的脚本必须生成无效的 JSON。可能是字符编码问题。

标签: javascript jquery json jquery-ui-autocomplete


【解决方案1】:

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

你可以验证json here

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

【讨论】:

  • 是的,我在发布问题之前使用了那个验证网站,并给了我一个有效的 JSON 格式。如果我使用少于 30 个元素,它就可以工作。不止于此,停止工作。
  • 产生错误的 Json 是否与您在问题中发布的相同?
  • 是的,但是有更多元素,比如 150 多个。但是当我验证 de JSON 返回有效的 JSON。
  • 可能在控制台中显示错误,你能复制一下吗?我还制作了一个示例,您可以使用它来测试您的 json,jsfiddle.net/DlanorJQ/o48rvcd7
  • (Brake Line Blank Space)之间存在一对","
【解决方案2】:

问题在于数据在其中一个元素中带有断线。数字 2,在 valuedesc 元素之间换行。这是一种有效的 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"
        }
    ]
}

【讨论】:

    猜你喜欢
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多