将 json 对象解析为数组

我被困在这个,我不知道该怎么做。所以基本上我从API得到了这个json数据:

http://img3.mukewang.com/632d14940001b1b706040327.jpg

这是我在记录数据时在控制台中得到的:

http://img1.mukewang.com/632d149f000153cd06190405.jpg

我想做的是解析这个对象,以获取id,标题,网址,缩略图Url并将它们存储到一个新的数组中


获取数据的代码:


const [photo,setPhoto] = useState([])

    const newPhotosLocally = photo


    useEffect(() => {

        axios.get("https://jsonplaceholder.typicode.com/photos").then(

            result => {

                setPhoto(result.data)

            }

        )


    },[])

希望你能帮助我,谢谢你


郎朗坤
浏览 86回答 4
4回答

汪汪一只猫

您可以映射响应返回的每个项目,如下所示:const [photo,setPhoto] = useState([])const newPhotosLocally = photouseEffect(() => {    axios.get("https://jsonplaceholder.typicode.com/photos").then(        result => {            var dataArray = result.data.map(({id, title, url, thumbnailUrl}) => ({id, title, url, thumbnailUrl}));            //do something with the array        }    )},[])此数据数组将包含 API 返回的所有项目

守着一只汪

您已经拥有所需的所有数据。如果您只需要某些特定字段,请使用地图运算符。const newData = result.data.map(obj => {id,title,url,thumbnailUrl});这将为您提供新数组中的必填字段(映射负责新数组)。

慕雪6442864

您可以直接在返回公理中分配给数组批处理。这是完整的代码。const [photo,setPhoto] = useState([])useEffect(() => {  axios.get("https://jsonplaceholder.typicode.com/photos").then(      result => {        // Add bellow here code        let newData = result.data.map(({id, title, url, thumbnailUrl}) => ({id, title, url, thumbnailUrl}));        setPhoto(newData);      }  )},[])

浮云间

下面是新数组。newDatavar newData = [...result.data];如果你只想拿几个属性。下面将为您提供仅具有上述属性的新数组。var newData = result.data.map(({id, title, url, thumbnailUrl}) => ({id, title, url, thumbnailUrl}));由于从API获取了如此多的记录,还要考虑是否要进行多次调用并仅获取所需的记录。还要考虑是否真的要修剪属性的数量,因为有效负载稍微大一些。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript