我有这种类型的json输入。 [{“id1”:“val1”,“id2”:“val2”},{“id1”:“val3”,“id2”:“val4”},...]
如何解析jquery-ui中可用的内部自动完成插件?基本上我希望对应于id1的val1,val3等是我的自动完成文本的一部分。关于如何处理此事的任何建议?
答案 0 :(得分:1)
自动填充小部件需要一组简单的字符串值或具有属性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
});
});
答案 1 :(得分:0)
要将JSON字符串转换为JSON对象,请使用$.parseJSON( ... )
。
这里var jsonstring
是包含JSON文本的文本,没有别的。如果字符串无效JSON,则parseJSON()
将失败。
var jsonobj = $.parseJSON( jsonstring );
然后使用它将new options插入自动填充。
以这种方式从jsonobj
获取值:
alert( jsonobj.id1 );
alert( jsonobj.id2 );