jQuery中奇怪的json错误

时间:2013-07-05 13:12:34

标签: javascript jquery json

我跟随json:

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

我想访问'suggestion'数组,为此我在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'的值显示为undefined,而'response.responseHeader'显示[object Object],我也可以访问responseHeader下的元素。但我无法弄清楚'拼写检查'的问题是什么。救命啊!

3 个答案:

答案 0 :(得分:5)

suggestions.suggestions无效。 suggestions是一个数组。您需要使用[]运算符对数组建立索引以获取特定建议。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

所以你需要:

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

Example on JS Fiddle