JSON 返回一个数字数组,而不是 JSON 中对象中的值

我试图通过这个 JSON 对象并从中获取一些值。


let currentPage = "

{

    "sys": {

        "space": {

            "sys": {

                "type": "Link",

                "linkType": "Space",

                "id": "xaswoie0ncrg"

            }

        },

        "id": "7lqAYzwP92G9TMDBUVnadp",

        "type": "Entry",

        "createdAt": "2020-07-30T18:08:33.159Z",

        "updatedAt": "2020-07-30T18:22:50.276Z",

        "environment": {

            "sys": {

                "id": "master",

                "type": "Link",

                "linkType": "Environment"

            }

        },

        "revision": 2,

        "contentType": {

            "sys": {

                "type": "Link",

                "linkType": "ContentType",

                "id": "landingPage"

            }

        },

        "locale": "en-US"

    },

    "fields": {

        "pageTitle": "Leading the next generation of renewable fuels",

        "heroImage": {

            "sys": {

                "type": "Link",

                "linkType": "Asset",

                "id": "vnjfnYzSyhqOjKlmNmBGb"

            }

        },

        "pageZone": [

            {

                "sys": {

                    "type": "Link",

                    "linkType": "Entry",

                    "id": "3aQvORUYowW0SoofuvHUov"

                }

            },

            {

                "sys": {

                    "type": "Link",

                    "linkType": "Entry",

                    "id": "Qfj1hNJ9euSkBcAQEDaN5"

                }

            }

        ]

    }

}"

然后我解析 JSON:


let currentPage2 = JSON.parse(currentPage); 


现在问题来了。如果将此记录在控制台中:


console.log(Object.keys(currentPage2.fields.pageZone[0].sys.id)); 


节点在终端中返回这个:


[

  '0',  '1',  '2',  '3',  '4',

  '5',  '6',  '7',  '8',  '9',

  '10', '11', '12', '13', '14',

  '15', '16', '17', '18', '19',

  '20', '21'

]

我想用这个:


console.log(Object.keys(currentPage2.fields.pageZone[0].sys.id).value);

//with expected value of "3aQvORUYowW0SoofuvHUov"

相反,它返回undefined。我不知道为什么会这样。我试过使用JSON.stringifyetc 并再次解析它,但它仍然以这种方式运行。


神不在的星期二
浏览 88回答 2
2回答

慕码人2483693

只需使用currentPage2.fields.pageZone[0].sys.id. 根本不需要Object.keys,除非您想要字符串的每个索引。

慕慕森

currentPage2.fields.pageZone[0].sys.id是一个字符串,因为Object.keys会将字符串解释为可迭代的,所以键将是每个字符的索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript