Javascript 如何使fetchapi从JSON文件返回一个键及其值,而不是在控制台中返回整个文件

Javascript 如何使fetchapi从JSON文件返回一个键及其值,而不是在控制台中返回整个文件,javascript,arrays,json,fetch,Javascript,Arrays,Json,Fetch,我试图使用fetch解析JSON文件中的key:value,以便在旋转木马中使用这些值,我从JSON文件中获取图像路径。当我将其设置为登录控制台时,它不是返回单个键和值,而是返回整个数组 这是我目前的代码。基本提取 fetch('http:/localhost/x/y/z/propimg.json') .then( res => res.json() ) .then( (id) => { console.log({id}); }) 甚至可以用fetch做我想做的事吗?JSON文

我试图使用fetch解析JSON文件中的key:value,以便在旋转木马中使用这些值,我从JSON文件中获取图像路径。当我将其设置为登录控制台时,它不是返回单个键和值,而是返回整个数组

这是我目前的代码。基本提取

fetch('http:/localhost/x/y/z/propimg.json')
.then( res => res.json() )
.then( (id) => {
  console.log({id});
})
甚至可以用fetch做我想做的事吗?JSON文件中有数千个ID,还有许多常见的ID附加到图像的各个文件路径。例如:

[
  [
    {
      "id": "31514711",
      "image": "/localhost/x/y/z/img/31514711-0.jpg"
    },
    {
      "id": "31514711",
      "image": "/localhost/x/y/z/img/31514711-1.jpg"
    },
    {
      "id": "31514711",
      "image": "/localhost/x/y/z/img/31514711-2.jpg"
    },
    {
      "id": "31514711",
      "image": "/localhost/x/y/z/img/31514711-3.jpg"
    }
  ]
]
我正在尝试解析这些内容,以便将它们附加到一个图像转盘,该转盘显示与文件中id关联的所有图像

非常感谢您的帮助。多谢各位

根据注释,这是控制台输出的一个示例:

{id: Array(1)}
    id: Array(1)
        0: Array(276512)
            [0 ... 9999] (etc.)
                [0 ... 999] (etc.)
                    0: {id: "31514711", image: "/localhost/x/y/z/img/31514711-0.jpg"}
                    1: {id: "31514711", image: "/localhost/x/y/z/img/31514711-1.jpg"}
                    2: {id: "31514711", image: "/localhost/x/y/z/img/31514711-2.jpg"}
                    3: {id: "31514711", image: "/localhost/x/y/z/img/31514711-3.jpg"}
                    4: {id: "31514711", image: "/localhost/x/y/z/img/31514711-4.jpg"}
                    5: {id: "31514711", image: "/localhost/x/y/z/img/30093175-0.jpg"}
                    6: {id: "30093175", image: "/localhost/x/y/z/img/30093175-1.jpg"}
                    7: {id: "30093175", image: "/localhost/x/y/z/img/30093175-2.jpg"}
                    8: {id: "30093175", image: "/localhost/x/y/z/img/30093175-3.jpg"}
                    (etc.)
编辑:更新代码以显示我正在尝试做什么,希望更清楚:

fetch('localhost/x/y/z/propimg.json') 
 .then( (res) => res.json() ) 
 .then( (output => { 
  var img = output; 
  for (var i = 0; i < img.length; i++) { 
   console.log("ID:", img[i].id); 
   console.log("Image:", img[i].image); 
  } 
}))

换句话说,我想返回每个ID及其映像路径。我想做的是将其输入react image gallery,并使其仅显示与ID关联的图像。

由于您无法一次显示gallery中的所有图像,因为您的浏览器将耗尽内存,您应该使用react image gallery的lazyLoad功能:

但要求数据具有不同的键名,因此您必须更改PHP脚本以获得如下内容:

images = [
  {
     original: '/localhost/x/y/z/img/31514711-0.jpg',
     thumbnail: '/localhost/x/y/z/img/31514711-0_thumbnail.jpg'
  },{
     original: '/localhost/x/y/z/img/31514711-1.jpg',
     thumbnail: '/localhost/x/y/z/img/31514711-1_thumbnail.jpg'
  }
]

如果你只想在本地运行,那么你就可以了。如果您想稍后将其部署到web,当然,您必须调整URL。

您的问题不是很清楚。你可以用你想要的任何东西来解决fetch返回的承诺。如果您展示了一个想要返回的数据示例,也许我们可以帮助api请求无法更改从后端服务器发送的内容。后端的工作是返回您想要的内容。如果您无法控制响应,则可以在获取响应后自己解析它。@rvor这根本不是我想要的。API调用会将数据返回给您。你的申请不满意的数据怎么办?您希望处理哪些数据?@rvor为了回应Phil的说法,您确实需要更改服务器端正在发生的事情。从服务器发回的数据太多了。Fetch API不知道也不关心您如何与服务器交互,只是通过HTTP进行交互。您可以限制返回的数据。我希望能够将key:value对放入变量中,并使用这些变量让应用程序显示文件夹中的图像。例如,类似于var id=keyid和var images=keyimages的内容,然后返回与这些键相关联的值。我将此与react-image-gallery一起使用。让我们一起使用。@rvor请查看聊天。