我有一个查询数据库的脚本,并用结果回显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);
}
});
答案 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"
}
]
}