0

我有以下json:

{
    "responseHeader": {
        "status": 0,
        "QTime": 1
    },
    "spellcheck": {
        "suggestions": [
            "a",
            {
                "numFound": 4,
                "startOffset": 0,
                "endOffset": 1,
                "suggestion": [
                    "api",
                    "and",
                    "as",
                    "an"
                ]
            },
            "collation",
            "api"
        ]
    }
}

我想访问“建议”数组,为此我在 jQuery 中使用它:

$.getJSON('http://localhost:8983/solr/suggest/?q=' + query + '&wt=json&json.wrf=?', {

})
    .done(function(response){
        // just for testing
        alert(response.spellcheck.suggestions.suggestion); // error: response.spellcheck is not defined
    });

“response.spellcheck”的值显示为未定义,而“response.responseHeader”显示[object Object],而且我可以访问responseHeader下的元素。但我无法弄清楚“拼写检查”有什么问题。帮助!

4

3 回答 3

5

suggestions.suggestions不能工作。suggestions是一个数组。您需要使用[]运算符对数组进行索引以获得特定建议。

具体来说,根据您发布的 JSON,您需要suggestions[1].suggestion.

于 2013-07-05T13:14:06.043 回答
1

使用 console.log 打印响应然后你可以做相应的事情

于 2013-07-05T13:21:26.420 回答
0

正确的拼写是response.spellcheck.suggestions(你用过suggesstions),这是一个数组,所以你可以使用索引查看它的上下文......例如:

alert(response.spellcheck.suggestions.suggestion[0]); // "a"

所以你需要:

response.spellcheck.suggestions.suggestion[1].suggestion

JS Fiddle 上的示例

于 2013-07-05T13:18:27.383 回答