在React中通过CORE API提取期刊URL并实现跳转的问题
问题解决:从CORE API提取期刊URL及替代API推荐
一、修复URL提取逻辑
直接通过journal.identifiers[2]获取URL的方式不可靠,因为identifiers数组的元素顺序可能变动。正确做法是遍历identifiers数组,筛选出以url:开头的条目,再提取真实链接:
修改fetchJournals中的transformedJournals处理逻辑:
const transformedJournals = data.data.map((journal) => { // 筛选出url开头的标识符 const urlEntry = journal.identifiers.find(id => id.startsWith('url:')); // 分割出真实URL,无匹配则为空字符串 const journalUrl = urlEntry ? urlEntry.split('url:')[1] : ''; return { title: journal.title, url: journalUrl, }; });
恢复渲染部分的<a>标签即可实现正常跳转:
{journal.url ? ( <a href={journal.url} target="_blank" rel="noopener noreferrer"> 访问期刊页面 </a> ) : ( <p>No URL available</p> )}
二、同类替代API推荐
- DOAJ API:专注开放获取期刊,数据结构清晰,直接返回期刊URL字段,无需额外解析,适合获取开放期刊资源。
- CrossRef API:覆盖海量学术期刊和文献,支持按学科检索期刊,返回的元数据包含期刊官网链接、ISSN等完整信息。
- PubMed Central API:针对医学、生命科学类期刊,数据权威,提供标准化的期刊信息接口,适合特定领域需求。
内容的提问来源于stack exchange,提问作者amingoni
相关产品推荐
相关产品推荐

