Как мне получить доступ к переменным в этом возвращении JSON, используя jQuery

0

У меня есть следующий фид данных JSON:

jQuery191029421305245357143_1380819227858(
    {
        "responseHeader": {
            "status": 0,
            "QTime": 127
        },
        "command": "build",
        "spellcheck": {
            "suggestions": [
                "restaurant",
                {
                    "numFound": 1,
                    "startOffset": 0,
                    "endOffset": 10,
                    "suggestion": [
                        "restaurants"
                    ]
                },
                "berl",
                {
                    "numFound": 4,
                    "startOffset": 11,
                    "endOffset": 15,
                    "suggestion": [
                        "berlin",
                        "berlin brandenburg",
                        "berlin hamburg",
                        "berliner"
                    ]
                },
                "collation",
                "restaurant berlin",
                "collation",
                "restaurant (berlin brandenburg)",
                "collation",
                "restaurants berlin",
                "collation",
                "restaurant (berlin hamburg)"
            ]
        }
    }
)

и я пытаюсь получить доступ к следующим данным в JQuery:

"restaurant berlin"
"restaurant (berlin brandenburg)"
"restaurants berlin"
"restaurant (berlin hamburg)"

До сих пор у меня есть следующий код JQUERY:

success: function( data ) {
    response( $.map(data.spellcheck.suggestions, function(item) {    
        return item;
}));

который работает, но возвращает мне все значения, а не только 4 набора данных, описанных выше.

Спасибо за помощь!

  • 1
    ваш "JSON" выглядит неправильно отформатированным ... почему у вас есть массив, который представляет собой смесь объектов и строк? не лучше ли сделать это последовательным, сделав все эти объекты?
  • 0
    Это JSONP , верно?
Показать ещё 2 комментария
Теги:

1 ответ

0
Лучший ответ

В вашем обратном вызове для map jQuery -function вы можете выполнить проверку и вернуть значение null, если вы не хотите, чтобы элемент был в результате.

Следующий фрагмент показывает пример того, как отфильтровывать все, что не является строкой, и все, что строка равна "сортировке":

success: function( data ) {
    response( $.map(data.spellcheck.suggestions, function(item) {    
        if (typeof item != "string") return;
        if (item === "collation") return;
        return item;
}));
  • 0
    благодарю вас!. это то, что я искал. Есть одна последняя небольшая проблема: как я могу удалить результаты "ресторан" и "берл" из результата?
  • 0
    Вам нужно было бы выполнить некоторое преобразование / разбор строк, чтобы вернуть правильные значения. По сути, обратный вызов получает каждый элемент из коллекции и создает новую коллекцию с тем, что вы возвращаете из каждого вызова.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню