jquery-ui - json数据的自动完成

时间:2012-05-21 07:25:20

标签: json jquery-ui

我有这种类型的json输入。 [{“id1”:“val1”,“id2”:“val2”},{“id1”:“val3”,“id2”:“val4”},...]

如何解析jquery-ui中可用的内部自动完成插件?基本上我希望对应于id1的val1,val3等是我的自动完成文本的一部分。关于如何处理此事的任何建议?

2 个答案:

答案 0 :(得分:1)

自动填充小部件需要一组简单的字符串值或具有属性labelvalue或两者的对象。

您可以使用$.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/

答案 1 :(得分:0)

要将JSON字符串转换为JSON对象,请使用$.parseJSON( ... )。 这里var jsonstring是包含JSON文本的文本,没有别的。如果字符串无效JSON,则parseJSON()将失败。

var jsonobj = $.parseJSON( jsonstring );

然后使用它将new options插入自动填充。

以这种方式从jsonobj获取值:

alert( jsonobj.id1 ); 
alert( jsonobj.id2 );