1
我从提取中遇到了这种奇怪的行为。JS Fetch JSON解析正在修改对象
首先看看这个截图的长度(这是正确的)和实际结构:console screenshot
考虑从一个服务器,其中该likes
阵列清楚地包含一个对象的以下JSON响应,并且comments
阵列包含两个:
{
"status":"success",
"payload":{
"272699880986":{
"likes":[
{
"createdTime":"2016-11-07T04:41:21.000Z",
"senderId":10209615042475034,
"senderName":"Alfredo Re",
"likes":1
}
],
"comments":[
{
"createdTime":"2016-11-07T04:41:54.000Z",
"senderId":1021426764639564,
"senderName":"Alfredo J. Re",
"comments":1
},
{
"createdTime":"2016-11-07T04:41:24.000Z",
"senderId":10209615042475034,
"senderName":"Alfredo Re",
"comments":1
}
]
}
}
}
现在,经过全体response.json()
该响应,如:
fetch('http://example.com/entries.json', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
...authKeys,
}
})
.then(response => {
switch(response.status){
case 200:
console.log('status 200', response)
return response.json()
}
})
.then(json => {
console.log('parsed response')
console.log(json)
})
让我得到以下结果:
{
"status":"success",
"payload":{
"272699880986":{
"likes":[
{
"createdTime":"2016-11-07T04:41:54.000Z",
"senderId":1021426764639564,
"senderName":"Alfredo J. Re",
"likes": 1,
"comments":1
},
{
"createdTime":"2016-11-07T04:41:24.000Z",
"senderId":10209615042475034,
"senderName":"Alfredo Re",
"comments":1
}
],
"comments":[
{
"createdTime":"2016-11-07T04:41:54.000Z",
"senderId":1021426764639564,
"senderName":"Alfredo J. Re",
"comments":1
},
{
"createdTime":"2016-11-07T04:41:24.000Z",
"senderId":10209615042475034,
"senderName":"Alfredo Re",
"comments":1
}
]
}
}
}
看看它是怎么混起来likes
和comments
集合。这现在令我疯狂。我错过了什么吗?
UPDATE
这里的a gif showing chrome's console列表表示并含有一个对象阵列,和包含两个对象另一个。当我点击前者时,它会变成一个有两个对象的数组!这使我感到困惑
你在开发工具网络选项卡中看到什么反应为'fetch' - 换句话说,从你的服务器 –
实际响应@ JaromandaX的实际响应是问题 –
中的第一段代码您意识到GIF,屏幕截图,JSBin和您在问题中提出的代码都有所不同?这很难提供帮助,因为我们无法重现您遇到的问题,也无法在我们公开的可视演示中重现问题。 – amdouglas