我有这种类型的 json 输入。[ {“id1”:“val1”,“id2”:“val2”},{“id1”:“val3”,“id2”:“val4”},...]
如何在 jquery-ui 中提供的自动完成插件中解析这个?基本上我希望与 id1 对应的 val1、val3 等成为我的自动完成文本的一部分。关于如何进行此操作的任何建议?
自动完成小部件需要一组简单的字符串值或具有属性的对象label
,value
或两者兼而有之。
您可以使用$.map
实用程序功能获取数据并将其转换为正确的格式。这假设您正在成功发出 AJAX 请求并且数据正在返回:
$.getJSON("/url", function(data) {
var src = $.map(function (el) {
return el.id1;
// or:
// return { label: el.id1, value el.id2 };
});
$("#id").autocomplete({
source: src
});
});
示例:http: //jsfiddle.net/df6wB/
要将 JSON 字符串转换为 JSON 对象,请使用$.parseJSON( ... )
. 这var jsonstring
是包含 JSON 文本的文本,仅此而已。parseJSON()
如果字符串不是有效的 JSON,将失败。
var jsonobj = $.parseJSON( jsonstring );
然后使用它来插入新选项以自动完成。
jsonobj
通过这种方式获取值:
alert( jsonobj.id1 );
alert( jsonobj.id2 );