如何解决获取 JSON 对象元素的问题



我有一个我想使用的json对象。

{
"type": "PROVIDER_PAYLOAD",
"message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVkOTQ3OTg4N2RlMGRkMDc4ZjEzM2FmNyIsImVtYWlsIjoiYWxzb25nZHVuc3RhbjJAZ21haWwuY29tIiwicm9sZSI6IkNVU1RPTUVSIiwiaWF0IjoxNTcwMDI3MDA4fQ.FcpoBPmhTSX535bNgE2ezCCWsNFPjEhc87hM4y6WadM"
}

所以当我尝试使用

console.log("Postback: " + payload.type)

但是我得到一个错误

Postback: undefined

我已经查看了网络上的一些资源,其中大多数都是这样做的并且它有效,但我不确定为什么我的没有给出类型的值 提前致谢

Subh是对的。在使用payload.type语法访问type之前,必须将 JSON 解析为对象。

因此,假设您有以下内容:

let payload = {
"type": "PROVIDER_PAYLOAD",
"message": "eyJhbGciOiJIUzWadM"
}

您必须使用JSON.parse将其转换为 JS 对象:

let payloadObj = JSON.parse(payload); 

现在,如果你做payloadObj.type,你应该没事。

console.log(payloadObj.type); // PROVIDER_PAYLOAD

它应该可以正常工作。

更新:错误:

语法错误:JSON 中位置 0 处出现意外的标记 a

如果收到此错误,请尝试按照以下操作来解析有效负载。

let payloadObj = JSON.parse(JSON.stringify(payload))

它应该为您解决问题。

最新更新