You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中导入并映射JSON对象数组时遇语法错误求解决

问题分析与解决方案

错误原因

你的代码报错是因为return语句的括号内直接用{}包裹了map结果——在JSX语法中,return的最外层必须是一个合法的JSX元素(或Fragment),直接写{}会被解析为JavaScript对象字面量,而非JSX表达式,因此babel会提示"预期逗号"(对象键值对需要逗号分隔)。

另外还有一个小问题:你把key属性放在了内部的videos_play元素上,正确的做法是把key放在map返回的每个元素的最外层容器上,否则React的列表diff算法会失效。

修正方案

方案1:添加根容器div

用一个外层div包裹所有map生成的元素,这是最直观的方式:

import './videos_css.css';
import VideosJSON from '../../assets/mock.json';

function Videos(){
    return(
        <div className="videos-container">
            {VideosJSON.videos_json.map((item, key) => (
                <div className='videos' key={key}>
                    <div className='videos_play'> {item.video}</div>
                    <div className='videos_info'>
                        <h1 className='videos_info_title'> {item.title}</h1>
                        <h2 className='videos_info_material'>{item.material}</h2>
                        <p className='videos_info_description'> {item.description}</p>
                    </div>
                </div>
            ))}
        </div>
    )
}

export default Videos

方案2:使用React.Fragment(无额外DOM节点)

如果不想多生成一个DOM节点,可以用React的Fragment语法(短语法为<>...</>):

import './videos_css.css';
import VideosJSON from '../../assets/mock.json';

function Videos(){
    return(
        <>
            {VideosJSON.videos_json.map((item, key) => (
                <div className='videos' key={key}>
                    <div className='videos_play'> {item.video}</div>
                    <div className='videos_info'>
                        <h1 className='videos_info_title'> {item.title}</h1>
                        <h2 className='videos_info_material'>{item.material}</h2>
                        <p className='videos_info_description'> {item.description}</p>
                    </div>
                </div>
            ))}
        </>
    )
}

export default Videos

内容的提问来源于stack exchange,提问作者Adjardo Lobo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 00:15:29