json自动完成与json问题

时间:2014-08-10 14:25:15

标签: json jquery-autocomplete

当用户使用 jquery ui在输入中键入内容时,我尝试实现自动完成。当用户输入内容时,他应该看到来自json的翻译。但是我从li中的新ul开始从JSON开始获取每个密钥,如下图所示:

screenshot http://www.picshare.ru/uploads/140810/gF5XdBXyXt.jpg

我希望只有一个li翻译。如何修改我的代码以获得预期的结果,如下图所示:

screenshot1 http://i66.fastpic.ru/big/2014/0810/75/9b3892bbd21141edf32407f1a2329075.jpg

这是jQuery代码:

$('#search').autocomplete({
    source: function (request, response) {
        $.getJSON("/search/" + request.term, function (data) {
            response($.map(data, function (value, key) {
                return {
                    label: value
                };
            }));
        });
    },
    minLength: 2,
    delay: 100
});

这是JSON:

{"word":"cat","translation":"кошка","synonymous":["кот","котенок","котик"],"transcription":"kæt","examples":{"pedigreed cats":"породистые кошки","Cheshire cat":"Чеширский кот"}}

提前致谢!

EDITED

$('#search').autocomplete({
    source: function (request, response) {
        $.getJSON("/search/" + request.term, function (data) {
            response($.map(data, function (value, key) {
            }));
        });
    },
    minLength: 2,
    delay: 100
});

2 个答案:

答案 0 :(得分:2)

在您要求翻译的问题中,但在图片中您打印的是同义词,我会将代码设为同义词,但翻译应该相同:

source: function (request, response) {
    $.getJSON("/search/" + request.term, function (data) {
        var result = data["word"] + " - " + data["synonymous"].join(",");
        response([result]);
    });
},

答案 1 :(得分:1)

您是否可以交换值和键,因此该行将是:

response($.map(data, function (key, value)

在我打字的时候,可以通过MadFlow来获取此信息。