如何从嵌套对象中获取数据

时间:2016-09-21 08:03:11

标签: javascript

var json = {
    "responseHeader": {
        "zkConnected": true,
        "status": 0,
        "QTime": 0
    },
    "spellcheck": {
        "suggestions": ["a", {
            "numFound": 6,
            "startOffset": 0,
            "endOffset": 1,
            "suggestion": ["a", "b", "c", "d", "e", "f"]
        }]
    }
}

如何使用javaScript从这个json的建议中获得建议?

3 个答案:

答案 0 :(得分:1)

像这样,如果你想得到完整的数组

var allSuggestion = json.spellcheck.suggestions[1].suggestion

或特定值

var valueA = json.spellcheck.suggestions[1].suggestion[0];

Example Fiddle

答案 1 :(得分:0)

我们可以使用

获取所有建议
var Suggestions = json.spellcheck.suggestions[1].suggestion

或者要获得位置值,您可以使用它的索引

var Suggestions = json.spellcheck.suggestions[1].suggestion[index]

您还可以应用foreach循环来获取值或对象。

由于

答案 2 :(得分:0)

https://jsfiddle.net/zw6f78xk/3/

只需在上面的图片中查看Object中的Array的表达结构。

如果由.包装的结构表明它是一个Object那么你可以通过[]访问属性,其中包含属性名称及其值(任何类型的值)

如果由[<index>]包裹,表明它是数组,那么您可以通过var json访问内部值。它只包含一组值(任何类型的值)。

这里{}是对象,因为它包含{}内层属性“responseHeader”,“spellcheck”是对象,因为它的结构由zkConnected包裹,但是你看看子级别“建议“由[]包裹,所以它的数组。

如果您想访问console.log(json.responseHeader.zkConnected); 的值,那么您的代码应为

numFound

如果您想访问console.log(json.spellcheck.suggestions[1].numFound); 的值,那么您的代码应为

suggestion

因为在建议中是数组并且有两个值,一个是索引0处的字符串“a”,另一个是索引1处的对象。

如果您想访问console.log(json.spellcheck.suggestions.suggestion[4]); 的“e”,那么您的代码应为

var json = {
    "responseHeader": {
        "zkConnected": true,
        "status": 0,
        "QTime": 0
    },
    "spellcheck": {
        "suggestions": ["a", {
            "numFound": 6,
            "startOffset": 0,
            "endOffset": 1,
            "suggestion": ["a", "b", "c", "d", "e", "f"]
        }]
    }
}

因为根据建议,建议是数组,e代表第5位,所以你可以通过索引4(位置-1)访问它

ClusterManager